在具有异步功能的另一个函数之后调用一个函数

时间:2017-07-31 16:30:37

标签: javascript jquery ajax

a()包含异步函数b()时,如何在另一个函数b()之后调用一个函数c()

A() {

}

B() {

    //do sometihng
    c(); //async function 
    //do something

}

如果A()包括B()已完成执行,我想致电c()。但我无法修改功能B()。

2 个答案:

答案 0 :(得分:2)

async function b(){
  await c();
}

function a(){}

(async function(){
  await b();
  a();
})()

使b等待c,然后你可以等待b并执行a。另一种方式是:

function b(){

  return c();
}

b().then(a);

答案 1 :(得分:0)

关键字await正是您所寻找的。

来自https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await如果将Promise传递给await表达式,它将等待Promise的解析并返回已解析的值。

async function c() {
   await b();
   a();
}