【发布时间】:2023-03-10 04:05:02
【问题描述】:
我有以下 API 调用。 getA、getB 和 getC 是正在进行的 API 调用。由于我使用等待,这些是顺序调用。
如何使其异步并仅在所有调用完成后才返回结果。
handler: async function (request, h) {
const headers = { headers: { “x-userId”: “sdsds” } };
const getA = ( await getData("app/getA”)) || options.headers.STORES;
const getB = ( await getData("app/getB”)) || [];
const getC = ( await postData("app/getC”, { payload: {} }, headers)) || [];
const result = {
status: "OK",
payload: {
stores: getA,
markets: getB,
groups: getC
}
};
return h.response(result);
}
【问题讨论】:
-
看起来这就是它已经编码的方式,您等待
getData和postData调用的返回。您的实际结果与预期结果如何? -
@DrewReese-同意。这些等待 getData 和 postData 的返回。但是当我们使用 await 时,它们不是按顺序执行的吗?我想让它异步,以便 getB 不必等待 getA 完成,而 getC 不必等待 getA 和 getB 完成。只有当所有 3 个调用都完成时才应该传递结果
-
啊,我明白了,我误读了您尝试/要求做的事情。您想同时触发所有三个请求,并且仅在它们全部完成后才返回结果。
标签: javascript reactjs performance api async-await