我目前正在使用口袋妖怪api为学校开展一个项目,该项目将显示进化宠物小精灵所需的信息(请注意,我对javascript和HTML完全不了解。)
链接:http://pokeapi.co/docsv2/
该网站将询问用户名称,该名称将用于获取我正在寻找的主要信息的网址。
例如:如果有人进入皮卡丘,程序将请求皮卡丘的对象,其中包含皮卡丘进化链的网址,该网址将为网站提供主要信息。
目前代码如下所示:
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应该只在pokemon完成之后被调用,因为它获得了pokemon2的实际url。
有谁知道如何才能做到这一点?
非常感谢! :)
答案 0 :(得分:1)
pokemon2
完成后,您可以致电pokemon
:
pokemon.onreadystatechange = function(){
if(pokemon.readyState == 4 && pokemon.status == 200){
var myArr = JSON.parse(pokemon.responseText);
var url2 = myArr.evolution_chain;
// Call pokemon2 here
var pokemon2 = new XMLHttpRequest();
pokemon2.open("GET", url2, true);
pokemon2.send();
}
}