node.js 代码以变成回调意大利面条而闻名。
在 node.js 中克服这个问题并编写干净、不复杂、易于理解的回调代码的最佳技术是什么?
最佳答案
看看 Promise:http://promises-aplus.github.io/promises-spec/
这是一个旨在解决这个问题的开放标准。
我正在使用 Node 模块“q”,它实现了这个标准:https://github.com/kriskowal/q
简单用例:
var Q = require('q');
例如我们有这样的方法:
var foo = function(id) {
var qdef = Q.defer();
Model.find(id).success(function(result) {
qdef.resolve(result);
});
return (qdef.promise);
}
然后我们可以通过 .then() 方法链接 Promise:
foo(<any-id>)
.then(function(result) {
// another promise
})
.then(function() {
// so on
});
也可以从以下值创建 promise :
Q([]).then(function(val) { val.push('foo') });
还有更多,请参阅文档。
另见:
关于javascript - Node.js:有哪些技术可以编写干净、简单的回调代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5265743/