Kann mir bitte jemand erklären, warum ich diese Warnung bekomme Warnung: ein Versprechen wurde in einem Handler erstellt, wurde aber nicht von ihm zurückgegeben, wenn ich führen Sie den folgenden Code ein:ioredis bluebird ein Versprechen wurde in einem Handler erstellt, wurde aber nicht von ihm zurückgegeben
cache['deviceSlave'].getBySystemId(systemId).then(function(slavesMapping) {
// do other stuff
}).catch(function(err) {
// throw error
});
Hier ist der Rest des Codes ist:
var Promise = require('bluebird');
var _ = require('lodash');
var Redis = require('ioredis');
var config = require('/libs/config');
var redis = new Redis({
port: config.get('redis:port'),
host: config.get('redis:host'),
password: config.get('redis:key'),
db: 0
});
var self = this;
module.exports.getBySystemId = function(systemId) {
return new Promise(function(resolve, reject) {
var systemIds = [systemId];
self.getBySystemIds(systemIds).then(function(result) {
return resolve(_.values(result)[0]);
}).catch(function(err) {
return reject(err);
});
});
};
module.exports.getBySystemIds = function(systemIds) {
return new Promise(function(resolve, reject) {
var pipeline = redis.pipeline();
_.each(systemIds, function(systemId) {
var cacheKey = 'device_slaves:' + systemId.replace(/:/g, '');
// get through pipeline for fast retrieval
pipeline.get(cacheKey);
});
pipeline.exec(function(err, results) {
if (err) return reject(err);
else {
var mapping = {};
_.each(systemIds, function(systemId, index) {
var key = systemId;
var slaves = JSON.parse(results[index][1]);
mapping[key] = slaves;
});
return resolve(mapping);
}
});
});
};
ich die folgenden Bibliotheken bin mit: ioredis & drossel. Der Code läuft gut und alles funktioniert gut! Mir gefällt einfach nicht, dass ich eine Warnung bekomme, die ich nicht lösen kann!
Wie dumm wie es klingt, ich dachte wirklich, dass dies mein Problem lösen würde. .. aber es tut es nicht. :(, Irgendwelche anderen Vorschläge ? – MakanMakan