2017-06-06 140 views
0

有沒有一種方法在Javascript中等待另一個函數的完成,它的回調,並基本上「暫停」當前函數的完成,直到那個時候?Javascript函數等待直到完成遞歸異步函數調用它

例子:

var doSomething = function(callback) { 
    doSomethingElseAsynchronously(doSomething); 
    /* Wait until doSomethingElseAsynchronously */ 
    /* is finished and it's callback has completed */ 
    return callback(); 
}; 
+0

https://stackoverflow.com/questions/5000415 /調用函數之前的功能是完成 –

+0

[前一個函數完成後調用函數]可能的重複(https://stackoverflow.com/questions/5000415/call-a-function-after -previous-function-is-complete) –

+0

搜索「javascript異步等待」以獲得很多答案。 –

回答

0

你在想什麼的是ES7當前提案所知道的async functions。其語法如下:

async function doSomething() { 
    let result = await doThingAsync(); // doThingAsync returns a Promise 
    // ... Do things ... 
    return result[0] 
} 

async函數返回一個Promise其解決與函數的最終返回值。

注意async功能幾乎沒有任何支持,你應該選擇使用它們,您必須首先transpile代碼以ES6或ES5採用類似Babel