在foreach循环中承诺

时间:2018-08-27 13:30:31

标签: javascript node.js ecmascript-6 es6-promise

我在foreach循环上有些挣扎。这是我的情况: 我在对象数组中有一些元素。我需要对每个对象执行2个查询。比我需要下一个对象并执行相同操作等。

我已经提出了两种查询方法:

function insertObj(locationId, cartId, quantity){
        return models.orders_cart.create({
            quantity: quantity,
            cartId: cartId,
            locationId: locationId,
        });
    }

function insertObj2(locationId, cartId, quantity){
    return models.orders_cart.create({
        quantity: quantity,
        cartId: cartId,
        locationId: locationId,
    });
}

.create返回一个promise,因此我可以使用它。这是我的foreach循环。

locations.forEach(function (element) {

});

我在那里需要两种方法。等待结果,然后转到下一个迭代。我真的不知道如何正确地履行诺言。

1 个答案:

答案 0 :(得分:2)

如果您可以使用async-await,则可以解决问题:

async runAsync(locations){
  for(let location of locations){
    await something();
    await something1();
  };
}