0
我目前正在爲使用口袋妖怪API的學校開展一個項目,該項目將顯示進化寵物小精靈所需的信息(請注意,我對javascript和HTML完全陌生)。
鏈接:http://pokeapi.co/docsv2/
該網站將要求用戶輸入一個名稱,該名稱將用於獲取我正在查找的主要信息的網址。
例如:如果有人進入皮卡丘,程序會向皮卡丘請求包含皮卡丘進化鏈的網址,並且該網址將提供網站的主要信息。
目前的代碼如下所示:如何延遲一個方法,直到另一個完成第一,JavaScript?
var pokemon = new XMLHttpRequest();
var name = prompt("Whats the name of the pokemon you have?").toLowerCase();
var url = "http://pokeapi.co/api/v2/pokemon-species/" + name;
var url2;
pokemon.onreadystatechange = function(){
if(pokemon.readyState == 4 && pokemon.status == 200){
var myArr = JSON.parse(pokemon.responseText);
var url2 = myArr.evolution_chain;
}
}
pokemon2.onreadystatechange = function() {
if (pokemon2.readyState == 4 && pokemon2.status == 200) {
var myArr2 = JSON.parse(pokemon2.responseText);
console.log(myArr2.chain.species.name);
}
}
var pokemon2 = new XMLHttpRequest();
pokemon2.open("GET", url2, true).done(onreadystatechange);
pokemon2.send();
pokemon.open("GET", url, true);
pokemon.send();
但是該程序不會因爲一個事實,即在同一時間和pokemon2正在發生越來越應該只寵物小精靈之後調用工作已經完成,因爲這是獲得pokemon2的真實網址。
有誰知道如何做到這一點?
非常感謝! :)。
使用JS回調?還是JS承諾? – user3207158