gpt4 book ai didi

javascript - 是否可以将独立的异步函数分组到单个等待下?

转载 作者:行者123 更新时间:2023-12-01 02:25:53 26 4
gpt4 key购买 nike

背景

我正在用express编写一些异步代码。在我的终点之一,我需要从 firebase 检索一些数据来处理 2 个不同的事情。

  • 有人发布了一些数据
  • 另一个检索一些用于计算和另一个帖子的数据。

这两个步骤并不相互依赖,但显然应该返回的最终结果是(只是一条成功消息,用于验证所有内容是否已正确发布)。

示例代码

    await postData(request);
const data = await retrieveUnrelatedData(request);
const result = calculation(data);
await postCalculatedData(result);

在上面的代码中,postData 将阻碍流程中的其他步骤,即使其他步骤(retrieveUnlatedDatapostCalculatedData)确实如此不需要 postData 等待的结果。

问题

是否有更有效的方法可以在返回完整的 postData promise 之前触发 retrieveUnlatedData

最佳答案

是的,当然!您需要知道的是 async/await 使用 Promises 作为其底层技术。记住这一点,您可以这样做:

const myWorkload = request => Promise.all([
postData(request),
calculateData(request)
])

const calculateData = async request => {
const data = await retrieveUnrelatedData(request);
const result = calculation(data);
return await postCalculatedData(result);
}

// Not asked for, but if you had a parent handler calling these it would look like:
const mainHandler = async (req, res) => {
const [postStatus, calculatedData] = await myWorkload(req)
// respond back with whatever?
}

关于javascript - 是否可以将独立的异步函数分组到单个等待下?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48811571/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com