Javascript 如何在维护执行顺序的同时减少异步等待中使用await关键字
看看foo如何有多个wait调用,有没有一种方法可以在保持执行顺序的同时简化它 我希望有可能写出这样的东西Javascript 如何在维护执行顺序的同时减少异步等待中使用await关键字,javascript,async-await,ecmascript-2017,Javascript,Async Await,Ecmascript 2017,看看foo如何有多个wait调用,有没有一种方法可以在保持执行顺序的同时简化它 我希望有可能写出这样的东西 async function foo() { await this.getAsync(); await this.getAsyncTwo(); await this.getAsyncThree(); await this.getAsyncFour(); } 或 您可以等待一个Promise.all() 这将保证您希望的顺序执行顺序 但是get this.getAsync
async function foo() {
await this.getAsync();
await this.getAsyncTwo();
await this.getAsyncThree();
await this.getAsyncFour();
}
或
您可以等待一个
Promise.all()
这将保证您希望的顺序执行顺序
但是get this.getAsync()是在这个.getAsyncTwo()之前执行的吗?没有必要这正是我想要实现的:(我比你投了更高的票,似乎我们采用了类似的方法,因为你的编辑更加优雅。第二种方法根本不起作用。
async
回调也不是必需的,方法中的这个
值也不起作用,也不会按顺序计算,根本不会等待任何东西。我担心它已经是最简单的形式了。根据您计划如何处理这些等待的结果,使用下面的数组方法可能会为每行代码节省一行或两行字符。请发布您的实际代码,以便我们根据这些调用的目的进行判断。实际代码在一个函数作用域中包含4个调用(主干js模型).Async await与嵌套的.then()=>{}调用..async/await
是ES2017的一部分,而不是ES7。您的函数都不会返回任何东西?少并不总是多。OP要求的是更简单的东西,而不是更复杂的东西。您需要绑定它,否则每个函数都会出错。这取决于谁调用了foo(),而他没有这样做,所以我假设它是同一个对象:-)
async function foo() {
await
this.getAsync(),
this.getAsyncTwo(),
this.getAsyncThree(),
this.getAsyncFour();
}
async function foo() {
await
this.getAsync()
.this.getAsyncTwo()
.this.getAsyncThree()
.this.getAsyncFour();
}
await Promise.all([this.getAsync(), this.getAsyncTwo(), /* etc */])
async function foo() {
const functions = [this.getAsync, this.getAsyncTwo, ...];
for (let func of functions) {
await func();
}
}