【发布时间】:2021-01-15 00:14:41
【问题描述】:
我猜我有一些菜鸟问题,但我无法理解为什么这段代码不能按预期工作。
问题是我想使用我的承诺(数组)的结果来调用我需要的 id,但由于某种原因它没有按我的预期工作。如果我在 b 之后调用 b.then((customerIds) => customerIds),我会得到带有值的数组,但如果我在 body 上调用它,它就不起作用。
const a = fetch('/orders').then(rawOrders => rawOrders.json())
let b = a.then((orders) => {
let customersList = []
orders.forEach(element => {
customersList.push(element.customer)
});
return customersList
})
fetch('/users', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
ids: b.then((customerIds) => customerIds)
}) // Here is the problem
}).then(rawUsers => rawUsers.json()).then(users => console.log('users', users));
【问题讨论】:
-
ids: b.then((customerIds) => customerIds)... 因为.then返回一个promise,ids将是一个promise ... 所以,在b.then(customerList => { code code code})这样的内部你可以使用ids:customerlist -
对我来说仍然不是很清楚,我不明白现在的 ids 是一个承诺,但我该如何使用我的 customerList 值
标签: javascript asynchronous promise fetch