2016-01-23 86 views
0

另一個函數,我想這樣做通承諾在Javascript

function doSomething(aPromise) { 
    if (/*xxx*/) { 
     // doSomethingElse 
    } else { 
     return aPromise 
      .then(doSomethingMore) 
    } 
} 

但是,如果我這樣做,aPromise就一定會執行調用doSomething時。我如何偷懶執行它,直到它被調用

回答

0

嘗試使用aPromise作爲一個功能,在else

function aPromise() { 
    return Promise.resolve(/* `Promise` return value */) 
} 

function doSomething(aPromise) { 
    if (/*xxx*/) { 
     // doSomethingElse 
    } else { 
     // call `aPromise()` 
     return aPromise() 
      .then(doSomethingMore) 
    } 
} 
+0

它的工作原理與調用aPromise()返回Promise值。謝謝。我會接受的。 –