收藏
回答

云函数异步调用的一些疑惑?

看文档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";
};


求大神解惑

回答关注问题邀请回答
收藏

1 个回答

  • showms
    showms
    2023-09-10
    exports.main = async (event = {}, context) => {
      return cloud.callFunction({
        name: 'xxx'
      }).then(res => {
        console.log("xxx execute result = " + res);
    return "ok";
      })
    };
    


    2023-09-10
    有用
    回复 1
    • breeze
      breeze
      2023-09-10
      就是我上面那么写还是会有云函数xxx会出现暂停执行的情况吗
      2023-09-10
      回复
登录 后发表内容