2017-04-12 31 views
0

有人可以幫助我爲什麼promise.all中的承諾,即(suggestRC和suggestGL)沒有被調用?我想確保建議RC和建議GL同時執行。這就是我寫這樣的原因。 extractIdeas正在調用,但建議RC和建議GL沒有被調用。Promise.all內的承諾沒有得到執行

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); 
    }); 
} 

回答

3

您需要呼叫這兩個函數(加括號)在回調你傳遞給then

.then(data => Promise.all([suggestRC(data), suggestGL(data)])) 

而且,你會想suggestValuesreturn承諾:

return Requests.deckreposvc(//...etc 
+0

謝謝@trincot。這工作。 –