在上一个事件结束后处理下一个事件

process next event one after previous event ended

我正在使用 node-imap 模块来获取邮件,我的代码是

var Imap = require('imap'),
    request = require('request');

var imap = new Imap();
/** Code for connecting to mail server **/

var fetch = imap.fetch([1,2,3]);

fetch.on('message', function(msg, seqno) {

  msg.on('body', function(stream, info) {  

    stream.on('end', function() {
      request('http://httpbin.org/ip', function(error, response, body){
        console.log(response.statusCode);
      });
    });

  });

}

但是如果存在多条消息,请求将在最后完成,我想结束每条消息和请求并转到下一条消息,如何使用 node.js 处理?

but if multiple message exists the request will be finished on last

那不是会发生的事情。与请求一样,消息被异步处理。它可能看起来如此,因为消息与请求一起被尽可能快地处理。 Node 不会 "wait" 整个事件在开始另一个事件之前完成。

按顺序处理消息是否至关重要?如果是这样,请查看异步库。