我調用一個函數,如何有條件地等待承諾解決?
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