【发布时间】:2019-06-19 21:22:41
【问题描述】:
这两个sn-ps是一样的吗?
顶部版本在箭头函数中返回一个承诺,底部版本不返回任何内容。使用 async 时是否有隐式返回,是否应该返回 null,是否需要返回 const 信息?
当我查看 babel 如何翻译它们时,它将 async/await 替换为生成器,使其看起来像我应该返回 const 信息
// t.get() is a promise, set and delete are not
db.runTransaction(t => {
return t.get(infoRef).then(info => {
t.set(db.doc(`/users/${uid}`), info.data());
t.delete(infoRef);
});
});
db.runTransaction(async t => {
const info = await info.get(infoRef)
t.set(db.doc(`/users/${uid}`), info.data());
t.delete(infoRef);
});
【问题讨论】:
-
我认为
const info = await info.get(infoRef)应该是const info = await t.get(infoRef) -
是的,看这个:MDN: async function
标签: javascript firebase async-await google-cloud-functions