JavaScript判断函数执行完毕

在JavaScript 中,如何判断这个函数已经执行完毕后,再执行其他函数?
比如有a,b函数执行完毕后再执行c函数。

阅读 10.6k
4 个回答

两种情况:
1,同步函数

这个简单,顺序执行就可以了

2,异步函数(我猜你是这种情况)async await可以解决

async function a() {
    return Promise.resolve("a");
}
async function b() {
    return Promise.resolve("b");
}
async function c() {
    await a();
    await b();
    console.log('执行c')
}
c();

被采纳的答案,a和b不就串行了吗?a被resolve了,才开始执行b。但是最好的是a和b是并行的,所以可以用Promise.all

function a() {
    return new Promise((resolve) => {
        // do something...
        setTimeout(() => {
            resolve('a');
        }, 1000);
    })
}

function b() {
    return new Promise((resolve) => {
        // do something...
        setTimeout(() => {
            resolve('b');
        }, 1000);
    })
}

Promise.all([a(), b()]).then(([ret1, ret2]) => {
    console.log('ret1:', ret1);
    console.log('ret2:', ret2);
});

异步可以使用Promise

原始的方法就是对要执行的函数设置flag,执行完后flag=true,然后判断flag的状态执行后边的函数

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏