gpt4 book ai didi

javascript - 如何访问 PromiseValue 中的数组值?

转载 作者:行者123 更新时间:2023-11-30 20:37:37 42 4
gpt4 key购买 nike

我是 React-Redux 的新手。我正在对 json 文件进行 api 调用,并希望将此文件的内容作为数组返回。我没有太多地处理 Promises,所以我对访问它们的知识有点模糊。基本上,这就是我所拥有的:

  const fetchData = () => {
return fetch('endpoint.json')
.then(results => results.json())
}

getProducts: (cb, timeout) => setTimeout(() => cb(fetchData().then(response => response)), timeout || TIMEOUT)

getProducts 当前返回以下内容,我可以在控制台中打开查看:

action {type: "RECEIVE_PRODUCTS", products: Promise}
products: Promise
__proto__ :Promise
[[PromiseStatus]] :"resolved"
[[PromiseValue]]: Array(3)

如何访问 PromiseValue?我需要直接获取JSON数组!

最佳答案

经过 热烈 讨论后,有人建议您重写getProducts 方法,使其更像Promise。不要将回调与 promise 混在一起,将代码放在 then 方法中。尽可能链式 promise 。


这里描述的这些解决方案中的任何一个都应该足够了

你必须在 then 中编写你的 getProducts

fetchData().then((jsonResults)=> {
// put the code surrounding getProducts here
return {
getProducts: jsonResults
}
})

或者,您可以使用 await(参见 async functions):

let products = await fetchData();
return {
getProducts: products
}

例子

> console.log(Promise.resolve([1,2,3]))
Promise {<resolved>: Array(3)}
__proto__: Promise
[[PromiseStatus]]: "resolved"
[[PromiseValue]]: Array(3)

> Promise.resolve([1,2,3]).then((jsonResults) => {
console.log(jsonResults);
})
(3) [1, 2, 3]

关于javascript - 如何访问 PromiseValue 中的数组值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49642363/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com