我有一个 rsmq 服务器,它应该检查给定的 URL 是否包含图像。我需要让程序同步运行,因为有一个init()
函数和一个while(true)
循环来服务所有请求。
首先,在init()
函数之前调用循环。
其次,我希望循环在继续循环之前等待每次迭代完成,这样就不会导致堆溢出。
尝试使用 async.waterfall。我的代码: Pastebin.com 链接
提前致谢!
我有一个 rsmq 服务器,它应该检查给定的 URL 是否包含图像。我需要让程序同步运行,因为有一个init()
函数和一个while(true)
循环来服务所有请求。
首先,在init()
函数之前调用循环。
其次,我希望循环在继续循环之前等待每次迭代完成,这样就不会导致堆溢出。
尝试使用 async.waterfall。我的代码: Pastebin.com 链接
提前致谢!
这是一种非常糟糕的做法,while (true)
因为它会阻塞并且会发出大量请求,而不是像您预期的那样发出一个请求。使用async.during
:
async.whaterfall([
(done) => {
// do some async stuff
done(null, false);
},
(isLoaded, callback) => { // isLoaded is false
async.during(
() => ! isLoaded, // Test async function result
(done) => { // Run check
checkIsLoaded((err) => {
if (err) {
done(err);
} else {
isLoaded = true;
}
})
},
callback
)
}
], (err, result) => {
// result got...
);