Javascript函数等到它内部调用的递归异步函数完成

时间:2017-06-06 01:26:00

标签: javascript

Javascript中有没有办法等待另一个函数的完成以及它的回调,基本上是"暂停"完成当前功能直到那个时间?

示例:

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

1 个答案:

答案 0 :(得分:0)

您所考虑的是ES7中的当前提案async functions。他们的语法如下:

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

async函数返回一个Promise,它将以函数的最终返回值解析。

请注意,async函数几乎没有支持,如果您选择使用它们,则必须首先使用Babel

之类的代码将代码转换为ES6或ES5。