我試圖用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