2017-05-12 13 views
0

誰かがこの警告を受けている理由を説明してください。警告:約束はハンドラで作成されましたが、返信されませんでした次のコードを実行します。ioredis bluebirdハンドラで約束が作成されましたが、返されませんでした

ここ
cache['deviceSlave'].getBySystemId(systemId).then(function(slavesMapping) { 

    // do other stuff 

}).catch(function(err) { 

    // throw error 

}); 

は、コードの残りの部分である:私は次のライブラリを使用してい

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); 

      } 

     }); 


    }); 

}; 

:&青い鳥をioredis。 コードは正常に実行され、すべて正常に機能します。私は私が解決できない警告を得るという事実のように私はちょうどいけない!

答えて

0

Bluebirdはここからexplicit constructionに対して警告しています。ここでは、上記のコードを書くべきかです: - 約束鎖として:)

+0

それは音として、私は本当にこれが私の問題を解決するだろうと思ったどのように愚かな

module.exports.getBySystemId = function(systemId) { return self.getBySystemIds([systemId]).then(result => _.values(result)[0]); }; 

約束をラップする必要はありません。 ..それはしません。 :(、他の提案はありますか? – MakanMakan

関連する問題