2016-01-23 98 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值。谢谢。我会接受的。 –