我不明白为什么
client.smembers和client.get(Redis查找)需要是回调,而不是简单地成为语句-这使生活变得非常复杂。
那就是Node。(我很确定在这里讨论这个话题的次数已经足够多了,通过其他问题,肯定存在)
如何确定在致电之前已执行所有查找
socket.broadcast?
这就是
err回调函数的目的。这是Node的标准-
回调中的第一个参数是错误对象(
null如果一切正常)。因此,请使用类似以下内容的内容以确保没有发生错误:
if (err) { ... // handle errors. return // or not, it depends.}... // process results但这似乎很混乱。
您会习惯的。当代码格式正确且项目结构巧妙时,我实际上发现它很好。
其他方式是:
- 使用库来控制异步代码流(Async.js,Step.js等)
- 如果您认为意大利面条式代码是一团糟,请定义一些函数来处理结果并将其作为参数而不是匿名参数传递。



