有人可以帮助我为什么promise.all中的promise(即suggestRC和suggestGL)没有被调用吗?我想确保 suggestRC 和 suggestGL 同时执行。正因如此,我才这样写。 extractIdeas 被调用,但 suggestRC 和 suggestGL 未被调用。
function suggestValues(editIdeaPanel) {
Requests.deckreposvc({searchIdeas: {searchString: searchReq}})
.then(extractIdeas)
.then(Promise.all([suggestRC, suggestGL]))
.catch(handleError);
}
function extractIdeas(searchRes) {
return searchRes.searchIdeas.data;
}
function suggestRC(ideas) {
return new Promise(function(resolve, reject) {
//do something
}
resolve(ideas);
});
}
function suggestGL(ideas) {
return new Promise(function(resolve, reject) {
if(!editIdeaPanel.wdGLeaderCombo.propertyValue.uuid) {
//do something
}
resolve(ideas);
});
}
最佳答案
您需要在传递给 then
的回调中调用这两个函数(添加括号):
.then(data => Promise.all([suggestRC(data), suggestGL(data)]))
此外,您还希望suggestValues返回
promise :
return Requests.deckreposvc( //...etc
关于javascript - Promise.all 中的 Promise 没有被执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43380359/