我试图用Promise.all返回一个承诺,但由于某些原因,我的.then值正在评估为undefined。这似乎工作时,它是所有内联,但这是我的理解,我应该能够返回顶部promise.all,然后像对待任何其他承诺。从函数返回Promise.all
function createStreamerArray() {
const regularStreamers = ["ESL_SC2", "OgamingSC2", "cretetion", "freecodecamp", "storbeck", "habathcx", "RobotCaleb", "noobs2ninjas"]
const baseURL = 'https://wind-bow.gomix.me/twitch-api'
return Promise.all(
regularStreamers.map(streamer => {
Promise.all([
Promise.resolve($.getJSON(baseURL + '/users/' + streamer + '?callback=?', null)),
Promise.resolve($.getJSON(baseURL + '/streams/' + streamer + '?callback=?', null))
]).then(values => {
return values
})
})
)
}
createStreamerArray().then(values => console.log(values))
一开始,你可以删除'。然后(值=> { 返回值 }) - 但是,这不会解决任何问题(但会使代码更少错误:) –
在“内部”Promise.all之前加上'return' [ - 或者删除包裹内层''Promise.all'的'{}' –
[删除无意义的'.then(values => {}返回值]'](http://stackoverflow.com/q/ 41089122/1048572) – Bergi