1
当我添加的JavaScript文档为以下功能,它会给我一个警告说,返回表达式类型Promise <T>不可分配给类型Promise <T>?
Return expression type Promise<T> is not assignable to a type Promise<T>
这有什么错用下面的回归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承诺,另一个是量角器承诺? – Bergi
顺便说一句,避免[deferred antipattern](http://stackoverflow.com/q/23803743/1048572)! – Bergi