看文档https://docs.cloudbase.net/cloud-function/deep-principle中云函数相关描述
exports.main = async (event = {}, context) => {
setTimeout(() => {
console.log("rid: ", context.request_id);
}, 0);
return "ok";
};
对于异步函数,主流程(例如示例中的 await main(event, context))执行完成后,函数实例进程会被冻结,
进程中的所有异步任务会暂停执行,直到这个进程被再次唤起。
setTimeout中的日志有时候可能不会输出。
如果setTimeout是另一个云函数的异步调用,会不会也像上面那样调用结果不确定呢?比如修改上面代码如下:
exports.main = async (event = {}, context) => {
cloud.callFunction({
name: 'xxx'
}).then(res => {
console.log("xxx execute result = " + res);
})
return "ok";
};
求大神解惑
exports.main = async (event = {}, context) => { return cloud.callFunction({ name: 'xxx' }).then(res => { console.log("xxx execute result = " + res); return "ok"; }) };