节点故障.js承诺复制值



我有一个与删除向导 REST API 交互的反应应用程序。在我的代码中,我注意到以下奇怪的错误。

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

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

其中 LoginTransport 是一种调用外部 API 的方法。现在我注意到,在这样做时,发明人res和sellerRes都将设置为LoginTransport.getAllUsers('库存所有者'(的值,而不是各自的参数。

当我把它分解成:

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(( 我怎么能完成我想做的任务?

现在我注意到,在这样做时,发明人 res 和 sellerRes 都将设置为 LoginTransport.getAllUsers('Inventory Owner') 的值,而不是各自的参数。

那将是LoginTransport.getAllUsers的错。 Promise.all做你期望它做的事情。

最新更新