0
我想寫一個小的守護進程,檢查是否有郵件發送,如果需要做睡眠X秒。NodeJS:不希望異步comportment
我不是很熟悉NodeJS的異步方式。所以我迷路了。
var sleep = require('sleep');
function getMailToSend(callback){
[...]
}
function sendmail(mail, callback) {
[...]
}
while(true){
sleep.sleep(10);
getMailToSend(function(err, mail) {
if(err) //Do log, whatever
sendMail(mail, function(err, response) {
if(err) //Do log...
});
}
正如你可以閱讀:
- 郵件沒有發送一個接一個
- 睡眠真的凍結,所以它也凍結sendmail的(哎呀)
是否有人知道誰意識到這一點?後
編輯qubyte
的第一個解決方案,我有一個解決方案,但uggly之一:■
var obj = { sent: true};
setInterval(function() {
if(obj.sent === false){
return;
}
obj.sent = false;
getMailToSend(function(err, mail) {
sendMail(function(err, response){
obj.sent = true;
});
});
}, 10000);
好吧,它有幫助,但如果getMailToSend比定時器更多,一次有兩個執行或更多...不完全是我想要的: -/ – farvilain
所以你想等到一個發送完成後再開始下一個? – qubyte
是啊,它可能看起來很愚蠢,但真實點在我的背景下做,以解釋。 – farvilain