gpt4 book ai didi

javascript - Angular 中 Promise 对象的回顾

转载 作者:行者123 更新时间:2023-11-28 06:37:08 25 4
gpt4 key购买 nike

好的,我有以下代码

Load: function (urlInfo, moduleInfo) {

return (function() {

var paramsObj = CheckParams(urlInfo.params);

if (paramsObj != null)
return $http.get(urlInfo.url, { params: paramsObj, cache: $templateCache });
else
return $http.get(urlInfo.url, { cache: $templateCache });

}()).then(this.successFn, this.errorFn);
},

successFn: function (response) {
if (response) {
return response;
} else {
// invalid response
return $q.reject(response);
}
},

errorFn: function (response) {
// something went wrong
return $q.reject(response);
},

我认为上面的代码有问题,因为它没有使用promise并且不要使用延迟对象,也不进行对象的解析我认为代码必须像这样进行审查:

GetData: function (urlInfo) {
return function () {

var deferred = $q.defer();
var paramsObj = CheckParams(urlInfo.params);

if (paramsObj != null){
$http.get(urlInfo.url, { params: paramsObj })
.success(function (data, status, headers, config) {
//resolve the promise
deferred.resolve(data); //#1
})
//if request is not successful
.error(function (data, status, headers, config) {
//reject the promise
deferred.reject('ERROR');
});
}
return deferred.promise;
}()).then(function (resolve) {
return resolve;
}, function (reject) {
return reject;
});
}

因为我不是专家,你可以告诉我可能会出现什么问题使用第一个代码(如果有问题)

最佳答案

当您调用 get 方法时,

$http 服务已返回 promise 。您只需return $http.get...即可。然后在您的 Controller 中,您将能够在方法调用后添加 thensuccesserror

关于javascript - Angular 中 Promise 对象的回顾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34178377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com