0

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

1

本来就是顺序执行的。请明确一下你的需求。

toBeTheLight · 2017年12月08日

添加评论

4个回答

2

已采纳

两种情况:
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();
1

被采纳的答案,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);
});
0

异步可以使用Promise

0

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

撰写答案