Node.js 事件循环

由于 Node.js 大量采用了异步事件循环的方式处理回调,在云函数中运行代码时,同样支持异步事件。在入口函数中调用 callback 或 return 后,云函数后台会等待事件队列为空后才返回。

因此,如下代码:

  1. exports.main = function(event, callback) {
  2. console.log("before callback");
  3. setTimeout(
  4. function(){
  5. console.log(new Date);
  6. console.log("timeout before callback");
  7. },
  8. 500
  9. );
  10. callback(null, "success callback");
  11. console.log("after callback");
  12. };

实际日志输出结果为:

  1. 2020-03-03T04:07:38.662Z LOG event.data: {}
  2. 2020-03-03T04:07:38.663Z LOG before callback
  3. 2020-03-03T04:07:38.664Z LOG return: { error: {}, code: 0, data: 'success callback' }
  4. 2020-03-03T04:07:38.669Z LOG after callback
  5. 2020-03-03T04:07:39.165Z LOG 2020-03-03T04:07:39.165Z
  6. 2020-03-03T04:07:39.165Z LOG timeout before callback