我调用一个函数,如何有条件地等待承诺解决?
getResponse(Math.random());
doSomethingWith(someVar);
getResponse(num) {
if(num > 0.8) someVar = "whee";
if(num > 0.5) someVar = "whoo";
if(num > 0) callSomeOtherFunctionWhichDoesABunchOfDatabaseQueriesThatUsePromisesAndEventuallySetssomeVar();
}
有没有一种方法,我可以等待callSomeOtherFunctionWhichDoesABunchOfDatabaseQueriesThatUsePromisesAndEventuallySetssomeVar()
完成并设置someVar
?我想我也可以将someVar
的任务包装在一个承诺中,然后使getResponse
then()
成为可能,但这似乎有点过分,因为我只有一个例子,我有一堆异步工作正在完成以确定someVar
。
承诺是病毒 - 一旦你开始使用usi将它放在你无法逃脱的地方(并且必须在任何地方使用它)。 – zerkms
@zerkms可怕。 – ahota
承诺承诺看起来有点苛刻,因为如果它是基于回调的,情况也是如此。如果你关心等待异步事情完成,调用它的函数也需要异步。 – loganfsmyth