1
if(condition1) {
return promise1(param).then(promiseFinal);
else if(condition2) {
return promise2(param).then(promiseFinal);
else if(condition3) {
return promise3(param).then(promiseFinal);
else...
有什麼辦法可以運行promiseFinal
而不必多次指定它?我試過的東西沒有工作:執行承諾後,如果像最後的聲明
return void function(param){
if(condition1) {
return promise1(param);
} else if(condition2) {
return promise2(param)
}...
}().then(promiseFinal)
此代碼似乎導致分支和網絡相關的承諾失序執行。我確信有一種方法可以做到這一點,但我現在無法想到任何事情。
'void function(){}()'與'(function(){})()'做不同的事情嗎? –
@ sg.cc:不,返回undefined並忽略函數的返回值,其他函數會計算返回值。 ['void'運算符](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/void)不僅僅用於在表達式中轉換函數 - 這裏甚至沒有必要,因爲無論如何你都在'return'聲明中。爲了清楚起見,我將括號括起來,如果您願意,可以省略。 – Bergi
謝謝!我現在只記得'void'總是返回'undefined'。這就是我努力變得聰明的原因。 –