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