我想根据fetch()函数的响应更新状态,但我无法获得值而不是获得承诺{}。如果是console.log(),那么这里的值是正确的。
state.product = fetch("https://fakestoreapi.com/products/2")
.then((res) => res.json()
.then((json) => {
console.log(json); // Correct value
return json;
})
);
console.log(state.product); // Promise {<pending>}
Fetch返回一个解析为Response对象的Promise。
您的第二个console.log
值为Promise,因为此时Promise尚未解决。
也许你可以试试下面的方法:
async function getProduct(id) {
return fetch(`https://fakestoreapi.com/products/${id}`)
.then((res) => res.json())
.then((data) => data);
}
const product = await getProduct(2);
console.log(product);