从azure异步函数返回什么
我有一个azure函数,看起来有点像这样:从azure异步函数返回什么,azure,azure-functions,Azure,Azure Functions,我有一个azure函数,看起来有点像这样: module.exports = async (context: Context, req: any) => { const canProceed = await new Auth().verify(context, req); if (!canProceed) { context.res = { status: 401, body: 'Unauthorised' }; return c
module.exports = async (context: Context, req: any) => {
const canProceed = await new Auth().verify(context, req);
if (!canProceed) {
context.res = {
status: 401,
body: 'Unauthorised'
};
return context.done(undefined, context);
}
context.res = doStuff();
return context.done(undefined, context);
}
当我在本地运行该函数时,会收到以下警告或错误:
错误:选择返回承诺或调用“完成”。不要在脚本中同时使用这两个选项
文档中不清楚这应该如何工作请查看
在函数运行时的2.x版本中使用异步函数声明或纯JavaScript承诺时,不需要显式调用context.done回调来表示函数已完成。导出的异步函数/承诺完成时,函数完成
导出异步函数时,还可以配置输出绑定以获取返回值。如果只有一个输出绑定,则建议使用此选项
如果不是,请在function.json中将name属性更改为$return
对于http触发器
{
"type": "http",
"direction": "out",
"name": "$return"
}
您的函数代码也需要修改。请注意,doStuff应按预期返回有效响应
module.exports = async (context: Context, req: any) => {
const canProceed = await new Auth().verify(context, req);
if (!canProceed) {
return {
status: 401,
body: 'Unauthorised'
};
}
else return doStuff();
}
看一看这张照片
在函数运行时的2.x版本中使用异步函数声明或纯JavaScript承诺时,不需要显式调用context.done回调来表示函数已完成。导出的异步函数/承诺完成时,函数完成
导出异步函数时,还可以配置输出绑定以获取返回值。如果只有一个输出绑定,则建议使用此选项
如果不是,请在function.json中将name属性更改为$return
对于http触发器
{
"type": "http",
"direction": "out",
"name": "$return"
}
您的函数代码也需要修改。请注意,doStuff应按预期返回有效响应
module.exports = async (context: Context, req: any) => {
const canProceed = await new Auth().verify(context, req);
if (!canProceed) {
return {
status: 401,
body: 'Unauthorised'
};
}
else return doStuff();
}