gpt4 book ai didi

javascript - 如何执行多个 Firebase 请求并在所有请求完成后接收回调?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:44:07 24 4
gpt4 key购买 nike

我想并行执行这三个 Firebase 请求,并在所有请求完成后收到回调。我以为我可以使用 await*,但 Babel 似乎不支持它。我不担心数据一致性,因为我正在写入/更新不同的 firebase 数据节点。

我正在使用 babel。

await* Promise.all([
firebaseRef1.push(data1),
firebaseRef2.push(data2),
firebaseRef3.push(data3)
]);
// all three are finished

最初是这样的:

const [first, second, third] = await* Promise.all([
firebaseRef1.push(data1),
firebaseRef2.push(data2),
firebaseRef3.push(data3)
]);
// all three are finished

最佳答案

push()不返回 promise ,因此您必须使用它的回调来解决或拒绝您自己的 promise 。

const allPushes = Promise.all([
new Promise((resolve, reject) => {
firebaseRef1.push(data1, error => {
error ? reject(error) : resolve();
});
}),
new Promise((resolve, reject) => {
firebaseRef2.push(data2, error => {
error ? reject(error) : resolve();
});
}),
new Promise((resolve, reject) => {
firebaseRef3.push(data3, error => {
error ? reject(error) : resolve();
});
})
]);

allPushes.then(() => {
// all three are finished
}, error => {
// A push failed
});

关于javascript - 如何执行多个 Firebase 请求并在所有请求完成后接收回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33178738/

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