【发布时间】:2016-09-20 13:43:55
【问题描述】:
当我为以下函数添加 javascript 文档时,它会给我一个警告说
Return expression type Promise<T> is not assignable to a type Promise<T>
使用下面的return defer.promise有什么问题还是我把return语句放错了地方?
/**
*
* @param zname
* @returns {Promise<T>}
*/
this.setInfoFromAPI = function (name) {
var defer = protractor.promise.defer();
var controlFlow = protractor.promise.controlFlow();
httpRequestUtility.getRestfulAPIToken().then(function (accessToken) {
console.log("Access Token is " + accessToken);
controlFlow.wait(
getInfoFromAPI(accessToken, name).then(function (returnData) {
if (String(returnData).match(httpStatusCodeClientErrorRegx)) {
defer.reject('Get Request Error for Zone Info\nResponse Error Code - ' + returnData);
} else {
setUpInfoFromAPI(returnData);
defer.fulfill();
}
}), 60000, 'Get Information').then(function () {
})
});
return defer.promise;
};
【问题讨论】:
-
也许其中一个是 anguarl 承诺,另一个是量角器承诺?
-
顺便说一句,避免deferred antipattern!
标签: javascript jasmine promise protractor angular-promise