我对承诺感到困惑。我找到了下面的密码。承诺的好处是什么。我已经读到过关于承诺,它是用来避免回调地狱。承诺为提供更好的性能,还是仅仅用于以可读的格式编写代码?
var list = function (params) {
if (!params) {
params = {};
}
var deferred = $q.defer();
if (params.q) {
params.q = JSON.stringify(params.q);
}
$http.get(someurl, {params: params}).success(function (data, status, headers) {
deferred.resolve(data);
}).error(function (data, status, headers) {
deferred.reject(data);
});
return deferred.promise;
};发布于 2015-05-25 13:22:31
发布于 2015-05-25 13:24:09
承诺被用来使代码更具可读性、更好的组织(避免意大利面代码)和更灵活。
但是,这里的示例使用了一种名为"递延反模式“的错误技术。完成同样的事情的一个更好的方法是:
var list = function (params) {
if (!params) {
params = {};
}
if (params.q) {
params.q = JSON.stringify(params.q);
}
return $http.get(someurl, {params: params}).then(function (result) {
return result.data;
});
};https://stackoverflow.com/questions/30439224
复制相似问题