不会按顺序调用异步函数

时间:2017-10-12 10:50:39

标签: javascript asynchronous async-await ecmascript-2017

我有三个异步功能:

getAccounts = async () => {
    try {
        const result = await someAsyncJob();
        ...
    }
    catch(err) {
        ...
    }
}
getPages = async () => {
    try {
        const result = await someAsyncJob();
        ...
    }
    catch(err) {
        ...
    }
}
getDepositList = async () => {
    try {
        const result = await someAsyncJob();
        ...
    }
    catch(err) {
        ...
    }
}

这里,我有一个名为“getAccounts”,“getPages”,“getDepositList”的函数。我需要按顺序调用这些函数,所以我写了这样的代码:

getData = async () => {
    try {
        await getAccounts();
        await getPages();
        await getDepositList();
    }
    catch(err) {
        ...
    }
}

从本文(https://medium.com/@peterchang_82818/asycn-await-bible-sequential-parallel-and-nest-4d1db7b8b95c)开始,它必须按顺序工作,但是当我运行它时,它们会一起调用,并且我的所有逻辑都搞砸了。

如何以顺序方式运行这些功能?

1 个答案:

答案 0 :(得分:3)

如果执行看到await,它应该只在promise被解决或被拒绝后继续,因此它应该是顺序的。我希望你也等待getData()?

相关问题