承诺返回的对象的访问值

时间:2020-05-16 00:39:33

标签: javascript api object promise

我需要帮助来掌握如何访问带有承诺返回的对象的值。我正在使用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并未真正做到这一点,所以不确定如何去做。谢谢您的提前帮助!

1 个答案:

答案 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

干杯。