1
我正在使用請求庫。我有一組URL(var資源),我想用這些URL的文本內容填充。JavaScript:如何確保此函數僅返回完全填充的數組?
我的代碼如下所示:
var resources = [<URL_1>, <URL_2>, <URL_3>, ...];
var resourcesText = resourceToText(resources);
function resourcesToText(resources) {
var text = [];
for (var i in resources) {
request(resources[i], fetch);
}
function fetch(error, response, body) {
if (!error) {
text.push(body);
} else {
console.log('Sorry. I couldn\'t parse that resource. ' + error);
}
}
return text;
};
的問題是,resourceToText()返回取前陣()有時間來填充它。因此,resourcesText最終是空的。我認爲更高階的函數是爲了處理這種問題,但我無法想出一個方法來處理這個回調。
這個問題最好的解決方法是什麼?
可能重複[如何從異步調用返回響應?](http://stackoverflow.com/questions/14220321/how-to-return-來自異步調用的響應) – Grundy
使用承諾或回調。 –