我正在使用axios向twitchtvapi发出AJAX请求。我向一个名为example的变量分配了promise。
是否有可能在Promise对象中获取数据?如果将.then方法链接到Promise对象,则会收到错误消息,表明.then不是函数。
如果我记录示例变量,我可以看到我希望将其存储在类似于以下内容的数组中的值包含三个promise
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;我如何从Promise对象获取数据?如果我尝试链接.then方法,则会收到错误消息,说.then不是函数。
感谢您的任何帮助。
以下代码
users.map((item) => axios.get(`https://api.twitch.tv/kraken/streams/${item}?client_id=${client_id}`)
返回一个promise数组。数组本身不是一个承诺。如果您希望在所有承诺都得到解决后执行一些代码,则可以使用Promise.all
Promise.all(users.map(...))
.then((responses) => {
// deal with responses[0].data
// responses[1].data
// etc.
})
.catch((error) => {
// deal with error that occurred
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句