以下片段返回undefined
而不是預期的鏈接數組。 apiCall()來自here。在函數的函數中返回值
是否有可能返回數組?如果是這樣如何?如果不是爲什麼?
async function fetchData() {
await apiCall('https://www.googleapis.com/youtube/v3/search?q=leeroyjenkins&maxResults=4&part=snippet&key={KEY}',
(error, response, body) => {
return JSON.parse(body).items.map(i => 'https://www.youtube.com/watch?v=' + i.id.videoId)
})
}
fetchData().then(r => console.log(r))
編輯:下面的代碼似乎工作;
async function fetchData(param, fn) {
await apiCall('https://www.googleapis.com/youtube/v3/search?q=leeroyjenkins&maxResults=4&part=snippet&key={KEY}',
(error, response, body) => {
fn(JSON.parse(body).items.map(i => 'https://www.youtube.com/watch?v=' + i.id.videoId))
})
}
fetchData('lee', function(Ar) { console.log(Ar) })
};
有人能指出爲什麼嗎?
_如果不是爲什麼?_ - 'apiCall'不返回一個承諾,不是嗎? – Federkun
這個函數返回的不是異步的,它沒有返回promise, – Remario
更近的分析表明一個maped值返回,這不是promise界面。 – Remario