异步PUT请求

时间:2016-01-13 18:11:49

标签: javascript node.js shopify

我正在建立一个脚本来通过Shopify API处理一些数据修改。

我的策略是从一个日期提取所有订单,并针对每个订单运行一个功能,然后将新数据提升。

我已经非常接近了,我有一个包含特定日期所有订单的数组。我通过承诺返回这些数据。

我需要有关此函数的异步性质的帮助才能按预期工作。目前,我的PUT请求被完全忽略,我不知道为什么。这是我的代码:

(function main() {
  var yesterday = moment().add('-1', 'days').format('YYYY-MM-DD');
  var today = moment().format('YYYY-MM-DD');
  var scopeStart = 'created_at_min=' + yesterday + "%2000:00";
  var scopeEnd = '&created_at_max=' + today + '%2000:00';

  var promise = new Promise(function(resolve, reject) {
    var apiEndpoint = '/admin/orders/count.json?limit=250&status=any&' + scopeStart + scopeEnd;
    Shopify.get(apiEndpoint, function(err, data) {
      if (err) reject(err);
      else resolve(data);
    });
  });

  promise.then(function(data) {
    console.log('promise data', data.count);

    if (data.count <= 250) {
      var secondPromise = new Promise(function(resolve, reject) {
        var apiEndpoint = '/admin/orders.json?limit=250&status=any&' + scopeStart + scopeEnd;
        Shopify.get(apiEndpoint, function(err, data) {
          if (err) reject(err);
          else resolve(data);
        });
      });

      secondPromise.then(function(data) {
        var array = data.orders;
        async.each(array, function(order, callback) {
          console.log(order.name, order.id);
          var thirdPromise = new Promise(function(resolve, reject) {
            var fields = generateFields(order.id);
            console.log('fields', fields);
            console.log('----------------');
            Shopify.put('/admin/orders/' + order.id, fields, function(err, data) {
              if (err) reject(err);
              else resolve(data);
            })
          });

          thirdPromise.then(function(data) {
            console.log('Updated', data);
          });  
        });
      });
    }
  });
}());

我的第三个承诺永远不会返回控制台日志。看跌请求似乎没有通过。有什么建议吗?

0 个答案:

没有答案