【发布时间】:2019-05-02 06:59:17
【问题描述】:
我不确定在这里处理异步/等待的最佳方法是什么,我的应用程序似乎在调用渲染之前没有等待,所以它试图在数据准备好之前加载。
data.js:
this.asyncFunction = async (x) => { return await _makeRestcall(x) }
this.load = async function(id) {
this.data = {
params: await asyncFunction("restCall1").value.reduce( // transform data),
ideation: await asyncFunction("restCall2").value.reduce( // transform data),
roles: await asyncFunction("restCall3").value.reduce( // transform data),
serviceGroups: await asyncFunction("restCall4").value.reduce( // transform data),
allocationPercents: [],
maintenanceYears: [0, 3, 5]
};
return this.data;
};
async init() {
this.d = await this.load();
console.log("called data async");
}
app.js
import data from 'data'
await data.init();
render()
理想情况下,我希望 data 中的所有调用并行运行,然后在所有调用完成后返回 this.data。
【问题讨论】:
-
Promise.all是你的朋友。
标签: javascript ecmascript-6 async-await