node.js - 如果我不想在后台函数中返回承诺,我该怎么办?
问题描述
通常我有这样的 Firestore 触发器
exports.createUser = functions.firestore
.document('users/{userId}')
.onCreate(async (snap, context) => {
return db.doc("somePath").update({data:" "});
});
但是现在例如我需要记录消息以指示更新过程成功,那么我应该返回什么?
exports.createUser = functions.firestore
.document('users/{userId}')
.onCreate(async (snap, context) => {
await db.doc("somePath").update({data:" "});
console.log("successfully update data after document creation");
return ????? // what should I return in here?
});
因为根据这里 Youtube 的解释,后台函数(在我的例子中是 Firestore 触发器)应该返回一个承诺。
解决方案
当你使用async
函数时,你需要返回一个 Promise,所以你有两种选择:
选项 1:返回已解决的 Promise
exports.createUser = functions.firestore
.document('users/{userId}')
.onCreate(async (snap, context) => {
await db.doc("somePath").update({data:" "});
console.log("successfully update data after document creation");
return Promise.resolve();
});
选项 2:最简单的解决方案async
exports.createUser = functions.firestore
.document('users/{userId}')
.onCreate((snap, context) => {
return db.doc("somePath").update({data:" "});
});
推荐阅读
- powerbi - 该表达式引用多个列。不能将多列转换为标量值
- javascript - Blazor 服务器端 - _Host.cshtml 中 js 文件引用的位置
- python - 如何使用机器人框架单击三个 div 标签内的按钮
- sql - 将 MSI 属性传递给 sqlstring
- ansible - 在ansible playbook中指定库存文件路径
- python - python中两个字符串之间的匹配模式
- powerbi - 将 Hotjar 连接到 PowerBI 作为数据源
- javascript - 为什么这个 javascript 片段记录 1?
- apache - 不同的日志到不同的文件
- failover - 为什么 Maxscale 不通过故障转移将 master 中的 slave 传递?