我的目標是爲列表中的各種藝術家記錄所有這些API。 API的含義是每個藝術家都有自己的特點,所以必須多次調用,每個藝術家一次。在Javascript中的for循環中運行不同的API
var artistList = [...]; //let's say there is a hypothetical 100 artists
var n = artistList.length; //this would be 100
for (var i=0; i<n; i++) {
var request = new XMLHttpRequest();
var urlApi = 'http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist=' + artistList[i] + '&api_key=somApiKeyThatWorks&format=json';
console.log(urlApi);
request.open('GET', urling, true);
request.onload = function() {
if (request.status >= 200 && request.status < 400) {
var data = JSON.parse(request.responseText);
console.log(data);
} else {
}
};
request.onerror = function() {
};
request.send();
};
現在,當我運行這個並檢查控制檯,只顯示最後列出的項目的數據。因此,我將所有這些API記錄在每個API中的相應藝術家的正確位置,但我只記錄了一個JSON。
如果有人能告訴我如何得到它,這樣每個JSON都會記錄下來,每個API都會很棒。我有一種感覺,這是因爲request.responseText
需要一段時間,所以它會在完成之前跳過它,導致它只記錄列表中的最後一項。不知道如何解決這個問題。我也不能使用jQuery,因爲我被明確要求不要這個任務。
什麼是你的代碼中的'urling'?你的意思是'urlApi'? –
這是一個API,而不是每個藝術家。 – LinuxDisciple