无法在承诺函数js

时间:2015-11-24 12:34:23

标签: mongodb meteor

我实际上在流星中构建一个简单的应用程序,拿着武器的皮肤认为我的蒸汽库存,解析武器的市场哈希名称,最后返回中位数价格根据蒸汽市场的皮肤。我的问题是关于存储皮肤的价格,我使用我已经包含在Meteor中的this npm包(我遵循异步方式),我可以很容易地得到皮肤的价格。我把这段代码放在服务器端的Meteor方法中,如下所示:

Meteor.methods({

getPrice:function(weapon,skin,state,loteryRef)
{


    var csgomarket = Meteor.npmRequire('csgo-market');

    var Q = Meteor.npmRequire('q');

    var wears = [state];

    var data = {
      prices : [{
        weapon : weapon,
        cached : false,
        skins : [skin],
        skinData : {},
        price : '',
      }]
    }

    var getPrice = function(theData) {
      var promises = [];
      theData.skins.forEach(function(skin) {
        theData.skinData[skin] = {};
        wears.forEach(function(wear) {
          promises.push(csgomarket.getSinglePriceAsync(theData.weapon, skin, wear, false).then(function(data) {

            theData.price = data.median_price;

          }));
        });
      });
      return Q.allSettled(promises).then(function() {
        return theData;
      });
    }

    getPrice(data.prices[0]).then(function(results) {

            console.log(results.price);

    });


}
});

承诺函数getPrice(data.prices[0]).then(function(results) {});的结果只能是console.logged,我无法在此函数之外保存结果。当我尝试在此函数中执行插入以保存此值时,它也不起作用。我做错了什么?

请原谅我英语非常好

0 个答案:

没有答案