【发布时间】:2011-12-20 00:38:10
【问题描述】:
这让我陷入了一个循环;我不完全确定如何分阶段提出问题。我有一个具有多个属性的对象,这些属性从数据库中获取并写入数据库。一个例子可能是:
// This is an over simplified example. this._connection() returns a valid DB connection
var delay = {
'time' : function() {
this._connection().query('SELECT * FROM delay', function(err, result, fields) {
return result.length ? result[0].time : 60;
}
}
}
现在,如果我尝试使用此代码 ....
console.log('Current Delay:' + delay.time());
正如我所料,它会打印“未定义”,因为 mySQL 回调在方法 delay() 返回之前没有执行,因此回调中的 return 没有做任何事情。
是否有一种公认的方法来处理这类事情?也许我只是无法理解 node.js/async。
【问题讨论】:
-
我认为将 console.log 放在回调函数中是让它工作的方法
-
@Daniel Elliott:我认为你举这个例子有点过于字面了
标签: node.js