【发布时间】:2019-04-28 08:30:13
【问题描述】:
const fetch = require('node-fetch');
let url = 'something.com';
module.exports = function(context) {
let a = fetch(url)
a.then(res => {
if(res.status!=200) throw new Error(res.statusText)
else{
context.done(null, res.body);
}
});
a.catch(err => {
console.log(err)
throw new Error(err)
});
};
我有一个像上面一样调用活动函数的持久函数。我已在此活动功能上设置失败时自动重试。重试该函数需要得到一个错误。
所以在获取请求中,当我收到 404 或类似的响应时,我想抛出一个错误。但是当我从 catch 块中抛出时,会出现如下错误
UnhandledPromiseRejectionWarning:未处理的承诺拒绝。这 错误源于在异步函数内部抛出 没有 catch 块,或拒绝未处理的承诺 使用 .catch()。
函数在那里暂停并停止执行。我必须手动停止并开始执行。我该如何处理,以便函数重试?
【问题讨论】:
标签: node.js promise azure-functions node-fetch azure-durable-functions