SM7*_*M79 3 javascript firebase babeljs
我希望并行执行这三个Firebase请求,并在所有请求完成后接收回调.我以为我可以使用等待*,但似乎Babel不支持它.我并不担心数据的一致性,因为我正在编写/更新不同的firebase数据节点.
我正在使用巴贝尔.
await* Promise.all([
firebaseRef1.push(data1),
firebaseRef2.push(data2),
firebaseRef3.push(data3)
]);
// all three are finished
Run Code Online (Sandbox Code Playgroud)
最初是这样的:
const [first, second, third] = await* Promise.all([
firebaseRef1.push(data1),
firebaseRef2.push(data2),
firebaseRef3.push(data3)
]);
// all three are finished
Run Code Online (Sandbox Code Playgroud)
push() 不会返回承诺,因此您必须使用它的回调来解决或拒绝您自己的承诺.
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
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1114 次 |
| 最近记录: |