我需要帮助来掌握如何访问带有承诺返回的对象的值。我正在使用Chuck Norris API进行练习,我想通过访问promise返回的对象中的“值”来访问提供笑话的实际值。到目前为止,我有这个:
const Chuck = fetch("https://api.chucknorris.io/jokes/random%22).then(norris => norris.json())
返回如下内容:
{
icon_url : "https://assets.chucknorris.host/img/avatar/chuck-norris.png",
id : "bnLsv99yTJ60a70357_mSQ",
url : ""
value: "Chuck Norris is Darth Vader's father."
}
并且我希望能够访问value属性的值。但是,由于Chuck.value
并未真正做到这一点,所以不确定如何去做。谢谢您的提前帮助!
答案 0 :(得分:-1)
我知道stackoverflow的惯例是关闭重复项。但是,我认为最好是向新手展示路,而不是要求他从头开始阅读,尽管其他问题的答案很长。
Promise是包装对象,通常它的值只能在.then
回调内部访问。
fetch("https://api.chucknorris.io/jokes/random%22).then(norris => norris.json()).then(Chuck => console.log(Chuck.value))
但是,有一种新的ES语法async/await
使您可以在语法上取消承诺:
async function run() {
const Chuck = await fetch("https://api.chucknorris.io/jokes/random%22).then(norris => norris.json())
console.log(Chuck.value)
}
run()
当前尚不支持顶级await
关键字,因此,要使用它,必须创建一个async
函数并在其中使用await
。
干杯。