从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

我有一个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 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();

}