伪代码:
app.get('/', (req, res) => {
request(url, callback1) //callback1 alters 'index' template a bit
request(url, callback2) //callback2 alters 'index' template a bit
request(url, callback3) //callback3 alters 'index' template a bit
res.render('index'); //Have to render after callback1,2,3 are done
});
如何确保render
仅在解决所有回调后才调用?
附注。每次调用的 URL 都不相同。
您可以为所有异步调用维护一个计数器,如果计数器等于异步调用的数量,则呈现 res。
下面是相同的代码片段:
app.get('/', (req, res) => {
var count = 0;
request(url1, function(err, data) {
count++;
// something to be done
if(count == 3) {
res.render('index');
}
});
request(url2, function(err, data) {
count++;
// something to be done
if(count == 3) {
res.render('index');
}
});
request(url3, function(err, data) {
count++;
// something to be done
if(count == 3) {
res.render('index');
}
});
如果每个回调中要完成的任务相同,您可以在 url 上使用 for 循环而不是编写不同的请求块。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句