【发布时间】:2016-09-02 10:04:23
【问题描述】:
这里是 PHP 开发人员,我与 NodeJS 搏斗了一段时间,但我仍然无法理解异步是 JS/Node 的想法。
看看这个(ExpressJS):
router.get('/:id', function (req, res, next) {
var id = req.params.id;
var db = new Firebase('some_firebase_db');
db.child("users/"+id).once('value', function (snapshot) {
var user = snapshot.val();
if (user) {
db.child("messages/"+id).once('value', function (snapshot) {
res.render('user/messages', {
'user': user,
'messages': snapshot.val()
});
});
} else {
res.render('404');
}
});
});
为了使res 对象可以访问数据库值,我需要在获取数据回调中呈现视图。
所以当我需要向我的数据库发出 6 个请求时,我必须在 6 个回调中嵌入我的 res 对象?
或者是否有不同的方法可以使代码保持异步的可读性?
最终,我需要一种方法来在一个请求中多次从 db 获取数据,这样我的代码不会看起来像圣诞树。
【问题讨论】:
-
向回调地狱问好——callbackhell.com
-
你应该看看像 async 这样的包和 Promises 来帮助你摆脱回调地狱。
-
@BlazeSahlzen 谢谢!
标签: javascript node.js express firebase firebase-realtime-database