Как реализовать механизм повтора для узла imap - PullRequest
0 голосов
/ 20 сентября 2019

Я использую IMAP NPM для получения электронных писем.Я хотел знать, как я могу обработать механизм повторных попыток при получении информации по электронной почтеНа официальной странице нет документации для того же

Код успешно работает для получения информации электронной почты.Я попытался вручную реализовать механизм Retry, но так как в нем задействованы многие обратные вызовы событий, все сложно.например,

Кто-нибудь пробовал этот сценарий?Мой фрагмент кода выглядит следующим образом:

    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, чтобы повторить попытку.Но это дает ошибку.

Ответы [ 2 ]

0 голосов
/ 27 сентября 2019

Я получил свое требование, используя 'async.retry'.Сделан класс для IMAP и его функциональность.В одном методе называется функциональность IMAP, а затем вызывается этот метод с использованием async.

0 голосов
/ 22 сентября 2019

Повтор здесь невозможен, так как существует много обратных вызовов.Вам нужно сделать полный звонок снова.Лучше всего будет иметь родительский код, вызывающий эту логику, и циклически повторять его X раз, пока вы не добьетесь успеха, иначе вернет ошибку.

...