在上一个事件结束后处理下一个事件
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" 整个事件在开始另一个事件之前完成。
按顺序处理消息是否至关重要?如果是这样,请查看异步库。
我正在使用 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" 整个事件在开始另一个事件之前完成。
按顺序处理消息是否至关重要?如果是这样,请查看异步库。