promise 仍在 then 块中悬而未决 - 如何解决?
promise is still pending in then block - how to resolve?
我有类似的代码 -
fetch(`${URL}${PATH}`)
.then(res => {
const d = res.json();
console.log("data is: ", d);
return d;
})
它记录 data is: Promise { <pending> }
。
如何查看结果并在下一个代码语句中利用?
其他问答建议使用then块来解决,但我还是看到没有解决。
res.json()
是异步的。您将需要使用额外的 .then 来获得结果。
fetch(`${URL}${PATH}`)
.then(res => res.json())
.then(d => {
console.log('data is: ', d);
return d;
});
好吧,如果您得到这种类型的值 Promise { <pending> }
。永远记得解决它。
所以您的查询将解析为
fetch(`${URL}${PATH}`)
.then(res => res.json())
.then(console.log)
.catch(console.error)
为了更好地理解,您可以利用 async/await 功能。上面的代码将减少到-
try{
const res = await fetch(`${URL}${PATH}`)
const dataAsJson = await res.json()
console.log(data)
}
catch(ex) {
console.error(ex)
}
我有类似的代码 -
fetch(`${URL}${PATH}`)
.then(res => {
const d = res.json();
console.log("data is: ", d);
return d;
})
它记录 data is: Promise { <pending> }
。
如何查看结果并在下一个代码语句中利用?
其他问答建议使用then块来解决,但我还是看到没有解决。
res.json()
是异步的。您将需要使用额外的 .then 来获得结果。
fetch(`${URL}${PATH}`)
.then(res => res.json())
.then(d => {
console.log('data is: ', d);
return d;
});
好吧,如果您得到这种类型的值 Promise { <pending> }
。永远记得解决它。
所以您的查询将解析为
fetch(`${URL}${PATH}`)
.then(res => res.json())
.then(console.log)
.catch(console.error)
为了更好地理解,您可以利用 async/await 功能。上面的代码将减少到-
try{
const res = await fetch(`${URL}${PATH}`)
const dataAsJson = await res.json()
console.log(data)
}
catch(ex) {
console.error(ex)
}