weixin_33713350 2017-12-20 16:41 采纳率: 0%
浏览 23

获得承诺的价值?

I'm using axios to make an AJAX request to the twitchtvapi. I assigned promise to a variable called example.

Is was it is possible to get the data inside of the Promise object? If I chain the .then method to the promise object I get an error that .then is not a function.

If I log the example variable I can see that there are three promises with the values that I'm looking to store into an array similar to

var example = users.map((item) => axios.get(`https://api.twitch.tv/kraken/streams/${item}?client_id=${client_id}`)
  .then(res => {
    console.log(res.data.stream);
    return res.data.stream;
  })
  .catch(error => {
    console.log(error);
  }));
console.log(example); //an array of three Promise objects 
console.log(example.then(res => res.data)) //returns error example.then is not a function
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>

TLDR; How can I get the data from a Promise object? If I try to chain the .then method I get an error that says .then is not a function.

Thank you for any help in advance.

</div>
  • 写回答

1条回答 默认 最新

  • weixin_33697898 2017-12-20 17:31
    关注

    The following code

    users.map((item) => axios.get(`https://api.twitch.tv/kraken/streams/${item}?client_id=${client_id}`)
    

    returns an array of promises. An array by itself is not a promise. If you wish to execute some code after all the promises have been resolved, you can use Promise.all

    Promise.all(users.map(...))
      .then((responses) => {
        // deal with responses[0].data
        //           responses[1].data
        // etc.
      })
      .catch((error) => {
        // deal with error that occurred
      });
    
    评论

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵