JQuery / Javascript - 解决多个承诺

时间:2016-08-16 19:50:37

标签: javascript jquery loops sdk promise

花了一整天时间试图解决这个问题,但无法快速实现。

基本上我需要遍历一系列购物车项目并提取产品ID'S。完成后,我可以使用ID来搜索服务器上的一系列产品,并调用正确的产品。

一旦我能够在我的服务器上找到所需的产品,我想找到有ZERO库存的产品。

这是我到目前为止所做的:

  var getLatestProducts = function () {
    var dfd = new $.Deferred(),
        productId;

    // loop through array (json)
    for (var i in cart.contents) {

      productId = cart.contents[i].id;

      console.log(productId);

      // SDK to get desired products from server
      moltin.Product.Get(productId, function(product) {
        dfd.resolve(product.stock_level);
      });
    }
    return dfd.promise();
  };

  var promise = getLatestProducts();

  promise.done(function(result) {
    var stockLevel = result;

    if (stockLevel > 0) {
      console.log('go to checkout');
    } else {
      console.log('show alert to stop going through to checkout');
    }
  });

这是我在控制台中获得的结果。如何遍历2个对象?

enter image description here

1 个答案:

答案 0 :(得分:0)

我并不完全熟悉你正在做的事情,但似乎你多次解决这个承诺,这可能只是第一次有效。你应该尝试为每个请求使用一个承诺,将这些承诺集中在一个父母和#34;保证然后在String myDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; String myUrl = "jdbc:sqlserver://myServerName:1433;DatabaseName=myDatabase"; Connection myConnection = DriverManager.getConnection(myUrl, myUN, myPWD); 中返回这个承诺。只有在所有子承诺得到解决后,才能解决这一承诺。

你可以尝试这个,但我可以'测试这个并且我不熟悉JQuery Promises所以我无法保证这将起作用。希望它仍然可以帮到你! :)

getLatestProducts