失败前轮询结果n次(尝试之间有延迟)

失败前轮询结果n次(尝试之间有延迟),第1张

失败前轮询结果n次(尝试之间有延迟

否。这是

Promise
构造函数antipattern的async/await版本!当您调用时
resolve
,它甚至不会停止循环,或者在引发异常时(例如,当
res
is
null
)拒绝它。
你应该用

async function getResult() {  for (let counter = 0; counter < 10; counter += 1) {    await Bluebird.delay(1000);    const res = await apiCall();    if (res.data) {      return res.data;    }  }  throw new Error('timeout');}

如果您要确保返回的是Bluebird承诺,而不是本地的,则将其包装

Bluebird.method
或告诉您的翻译者使用Bluebird。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5476965.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存