为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 JavaScript Promise.all 没有解决承诺

为什么 JavaScript Promise.all 没有解决承诺

互换的青春 2022-07-21 10:16:03
我有以下代码从不同的新闻网址获取新闻;function displayNews() {    Promise.all([fetch(BUSINESS_NEWS_URL), fetch(APPLE_NEWS_URL)])    .then(responses => {        return responses.map(response => response.json())    }).then((data) => console.log(data)) // this still prints [Promise]}出于某种原因,我得到显示 [Promise] 而不是实际数据。我错过了什么?
查看完整描述

2 回答

?
Helenr

TA贡献1780条经验 获得超3个赞

json() 返回一个承诺,所以它会是另一个 Promise.all


Promise.all([fetch(u1), fetch(u2)])

    .then(responses => {

        return Promise.all(responses.map(response => response.json()))

    }).then((data) => console.log(data))

大多数人不会使用两个promise alls。他们将通过 fetch 调用返回 JSON


const grabJSON = url => fetch(url).then(x => x.json())

const calls = ['url1', 'url2'].map(grabJSON)

Promise.all(calls)

  .then((data) => console.log(data))


查看完整回答
反对 回复 2022-07-21
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

json是一种异步方法。尝试这样的事情:

function displayNews() {
    Promise.all([fetch(BUSINESS_NEWS_URL), fetch(APPLE_NEWS_URL)])
   .then(responses => {        return Promise.all(responses.map(response => response.json()))
    }) 
   .then(responses => {        return responses.map(data => console.log(data))
    })}


查看完整回答
反对 回复 2022-07-21
  • 2 回答
  • 0 关注
  • 99 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信