Javascript Angular.js承诺
我对承诺感到困惑。我在下面找到了代码。承诺的好处是什么。我读到过关于承诺的书,它被用来避免回调地狱。promise是否提供了更好的性能,还是仅用于以可读格式编写代码Javascript Angular.js承诺,javascript,angularjs,callback,angular-promise,Javascript,Angularjs,Callback,Angular Promise,我对承诺感到困惑。我在下面找到了代码。承诺的好处是什么。我读到过关于承诺的书,它被用来避免回调地狱。promise是否提供了更好的性能,还是仅用于以可读格式编写代码 var list = function (params) { if (!params) { params = {}; } var deferred = $q.defer(); if (params
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;
};
Promise
s用作异步代码的句柄。您可以稍后使用它(作为变量名)来检查是否成功
医生说:
一种服务,可帮助您异步运行函数,并在函数完成处理时使用其返回值(或异常)
另见:
承诺用于使代码更具可读性、更好地组织(避免使用意大利面代码)和更灵活 但是,您的示例使用了一种称为“”的糟糕技术。实现同样目标的更好方法是:
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;
});
};
因为标题太模糊了,我从众多关于承诺的问题中挑了一个,让它成为一个副本。