Answers
利用 https://www.npmjs.com/package/event-emitter 或者 https://www.npmjs.com/package/async 或者 promise都可以解决你的问题
Arron
answered 9 years, 10 months ago
我觉得这篇文章
http://nya.io/Node-js/promise-in-nodejs-get-rid-of-callback-hell/
提到的Promise/A+方法可以解决你的问题。
写出来的代码或许是这样子的:
首先需要自己制作Promise的API,然后传入Q.all中。
var Q = require('q');
function clientGet(key, callback) {
var deferred = Q.defer();
client.get(key, function(err, data) {
if(err) {
deferred.reject(err);
} else {
deferred.resolve(data);
}
});
return defered.promise.nodeify(callback);
}
Q.all([
clientGet('str_key_0'),
clientGet('str_key_1')
])
.then(function(dataArray){
for(var i = 0; i < dataArray.length; i++){
console.log(dataArray[i]);
}
}, function(err){
console.log(err);
});
Mmuuu
answered 9 years, 10 months ago