我尝试为Redis中存在的每个密钥执行某些任务。 Promise
已实施克服回调地狱。因此,我尝试将每个函数执行分配到变量中,然后尝试将它们放入thenable chain
中,如下面的代码所示。 thenable
在第一步工作正常,但之后无法正常工作。
请查看以下代码。下面的代码有一些依赖的js
文件,我没有,但它似乎写入/处理但是,似乎我最终使用嵌套thenable chanins
即使在使用promise之后。我想我是以错误的方式处理承诺。包括。
var redis = require('redis');
var client = redis.createClient();
var promise = require('bluebird');
var yaml = require('node-yaml-config');
var config = yaml.load(__dirname + '/config.yaml');
var analyticsQueue = require(config.ANALYTICSQUEUE);
var queueOpsObj = require(__dirname + '/' + config.ANALYTICSQUEUE + 'Operations.js').QueueOps;
var queueOps = new queueOpsObj(null,'test');
var getAllKeys = queueOps.getAllKeys().then(function(result){
return result;
});
var dequeueAllResultObj = getAllKeys.then(function(keyCollection){
promise.map(keyCollection, function(key){
return setInterval(function(){
var queueOps = new queueOpsObj(null, key);
queueOps.dequeueAll().then(function(dequeueAllResult){
console.log('*****' + dequeueAllResult);
return result;
});
}, 3000);
});
});
dequeueAllResultObj.then(function(result){
// Getting undefined as result
console.log(result);
});