带有node.js的故障承诺复制值

时间:2017-02-13 04:39:20

标签: javascript node.js asynchronous promise async-await

我有一个react应用程序与drop wizard REST API交互。在我的代码中,我注意到以下奇怪的错误。

在尝试设置两个变量的值然后使用它们来设置状态时,我有以下

const [inventorRes, sellerRes] =
await Promise.all([
    LoginTransport.getAllUsers('Inventory Owner'),
    LoginTransport.getAllUsers('Seller'),
]);

其中LoginTransport是一种调用外部API的方法。现在我注意到,在执行此操作时,Inventor res和sellerRes都将设置为LoginTransport.getAllUsers('Inventory Owner')的值,而不是相应的参数。

当我把它分解为:

const inventorRes = await LoginTransport.getAllUsers('Inventory Owner');
const sellerRes = await LoginTransport.getAllUsers('Seller');

行为是正确的。

我的理解来自:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all是Promise.all返回了一个可迭代的。是不是javascript会尝试将左侧可迭代的值与右手匹配?假设这是真的但我坚持使用Promise.all()我怎么能完成我想做的任务?

1 个答案:

答案 0 :(得分:1)

  

现在我注意到,在执行此操作时,发明人res和sellerRes都将设置为LoginTransport.getAllUsers('Inventory Owner')的值而不是相应的参数。

那将是LoginTransport.getAllUsers的错误。 Promise.all does你期待它做什么。