【发布时间】:2018-09-26 03:16:54
【问题描述】:
我正在尝试使用 javascript Promise 多次调用函数。该函数实际上调用了一个 URL 并取回 json 对象。调用成功后,我会正确取回 json 对象。如果任何调用失败,例如超时或 500 错误,则 catch 不会记录。我尝试调试代码,发现它从未被捕获。
var promises = [];
for (var i = 0; i < questionIds.length; i++) {
promises.push(createPromise());
}
Promise.all(promises).then(function (res) {
console.log(success);
}).catch( function (error) {
console.log("error out");
console.log(error);
});
function createPromise() {
return new Promise(function(resolve, reject) {
getserviceresult();
});
}
【问题讨论】:
-
你没有兑现你的承诺。
getserviceresult()返回什么? -
你既没有调用函数
resolve也没有调用reject。 -
如果
getserviceresult()返回承诺,那么只需promises.push(getserviceresult());。或写promises = questionIds.map(getserviceresult);将您的每个questionIds传递给getserviceresult()。
标签: javascript promise