1

我正在使用 IMAP NPM 来获取电子邮件。我想知道在获取电子邮件信息时如何处理重试机制。官方页面没有任何相同的文档

代码成功地获取电子邮件信息。我试图手动实现重试机制,但由于涉及许多事件回调,所以事情很艰难。例如

有没有人尝试过这种情况?我的代码片段如下

    imap.once('ready', function() {
      openInbox(function(err, box) {
      if (err) throw err;
      var f = imap.seq.fetch('1:3', {
      bodies: 'HEADER.FIELDS (FROM TO SUBJECT DATE)',
      struct: true
    });

在上述情况下,我想再次调用 openInbox 函数重试,而不是抛出错误。但它给出了错误。

4

2 回答 2

0

此处无法重试,因为有很多回调。您需要再次拨打电话。最好的办法是让父代码调用此逻辑并将其循环 X 次,直到成功,否则返回错误。

于 2019-09-22T13:12:35.913 回答
0

我使用“async.retry”满足了我的要求。为 IMAP 及其功能制作类。在一种称为 IMAP 功能的方法中,然后使用异步调用此方法。

于 2019-09-27T05:01:56.223 回答