我遵循了 MS 编写 Azure Function 的所有准则。无论如何必须使用 .done()
否则客户端(Postman)将看不到任何返回:
module.exports = async function(context)
{
...
const result = await aPromise().catch((bad)=>
{
context.res = {status: 401, body: "bad"};
context.done(); // needed so client can get the above res
});
}
这是否意味着返回不是一个Promise
?
最佳答案
如果您的函数是同步,它不会返回Promise,因此您必须传递context
对象,就像调用正确使用需要 context.done。
//您应该包含上下文,其他参数是可选的
module.exports = function(context, yourTrigger, yourInput) {
// your function code
context.done();
};
如果你的函数是async function
。您不需要调用 context.text。 在 Functions 运行时的异步函数声明中,您不需要显式调用 context.done
回调以表明您的功能已完成。
从函数版本2.x
开始适用。如果您使用的是函数版本 1.x
,您需要调用 context.done 回调。
module.exports = async function (context) {
context.log(‘your log');
};
注意:
在编写异步函数时,不需要显式调用done
,done
回调会被隐式调用。
引用here了解更多信息
关于azure-functions - 使用 context.done() 后我会得到 Promise 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70965346/