我有以下代码的NodeJS:在nodejs中回调内部回调?
app.get('/dashboard', function(req, res){
db.collection('com_url_mamy').find().toArray(function(err, doc){
db.collection('com_url_mamy').find({'price':''}).count(function(err, docs){
db.collection('com_url_mamy').find({"price":{$not:{$ne:"last_price_1"}}}).count(function(err, last_doc){
if(err){console.log(err);}
console.log(docs);
res.render('dashboard',{'doc':doc, 'docs':docs, 'last_doc':last_doc});
});
});
});
在这里,我要添加更多的两个或三个查询/回调。
但我不认为这是正确的做法。 请任何人都可以告诉我如何解决此问题以提高性能。
谢谢
@MehdiElFadil这不是重复的。他可以使用Promises和多个并发异步调用来改善他的代码。您链接的问题是关于代码风格,而他的问题是关于特定情况下的性能问题,而不是可以改进的问题。 –
我在这里贴了我的答案,因为问题已经无故关闭http://paste.ofcode.org/zHmnq2u8qKzDx9ggnYHep9 由于你的3个查询不依赖于其他人,你可以使用'''Promise.all'''并行执行其中的3个。 –
顺便说一句'''{price“:{$ not:{$ ne:”last_price_1“}}}'''可以重构为'''{”price“:”last_price_1“}''(不等于等于:p) –