产品动态
产品公告
exports.main_handler = async (event, context) => {console.log(event);console.log(context);return event};
exports.main_handler = (event,context,callback)=>{console.log(event);console.log(context);callback(null,"hello world");}
index.main_handler,此处 index 表示执行的入口文件为 index.js ,main_handler 表示执行的入口函数为 main_handler 函数。在使用本地 zip 文件上传、COS 上传等方法提交代码 zip 包时,请确认 zip 包的根目录下包含有指定的入口文件,文件内有定义指定的入口函数,文件名和函数名和执行方法处填写的能够对应,避免因为无法查找到入口文件和入口函数导致的执行失败。callback 是一个函数,可以在非异步处理程序中使用它来返回响应。响应对象必须与 JSON.stringify 兼容。callback 函数有 Error和响应两个参数,调用该函数时,SCF 等待函数执行完成后将响应或错误返回。async 关键字,使用 return 来返回响应,使用 throw 返回错误信息。exports.main_handler = async(event,context,callback) => {const promise = new Promise((resolve,reject) => {setTimeout(function() {resolve('成功')// reject('失败')}, 2000)})return promise};
context.callbackWaitsForEmptyEventLoop 为 false,可以修改默认的回调行为,避免等待事件循环为空。context.callbackWaitsForEmptyEventLoop = false;,使云函数后台在 callback 回调被调用后立刻冻结进程,不再等待事件循环内的事件,而在同步过程完成后立刻返回。exports.main_handler = (event, context,callback) => {context.callbackWaitsForEmptyEventLoop = falsecallback(null,'success')setTimeout(() => {console.log('finish')},5000);};

'use strict';exports.main_handler = (event, context, callback) => {console.log("Hello World")console.log(event)setTimeout(timeoutfunc, 2000, 'data');callback(null, event);};function timeoutfunc(arg) {console.log(`arg => ${arg}`);}
START RequestId: 1d71ddf8-5022-4461-84b7-e3a152403ffcEvent RequestId: 1d71ddf8-5022-4461-84b7-e3a152403ffc2020-03-18T09:16:13.440Z 1d71ddf8-5022-4461-84b7-e3a152403ffc Hello World2020-03-18T09:16:13.440Z 1d71ddf8-5022-4461-84b7-e3a152403ffc { key1: 'test value 1', key2: 'test value 2' }2020-03-18T09:16:15.443Z 1d71ddf8-5022-4461-84b7-e3a152403ffc arg => dataEND RequestId: 1d71ddf8-5022-4461-84b7-e3a152403ffcReport RequestId: 1d71ddf8-5022-4461-84b7-e3a152403ffc Duration:2005ms Memory:128MB MemUsage:13.425781MB
arg => data 的内容,即相关异步操作在当前调用中执行且是在同步过程执行完成后执行的,而函数调用在异步任务执行完成后才结束。文档反馈