首页 > 解决方案 > 如何实现节点imap的重试机制

问题描述

我正在使用 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 函数重试,而不是抛出错误。但它给出了错误。

标签: node.jsimapnode-imap

解决方案


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


推荐阅读