我的取物有問題。我為我的專案獲取了 API,當我嘗試使用按值顯示時,它在第一次點擊時不起作用。在第二次單擊時,該功能將運行良好并且一切正常。當我嘗試登錄獲取功能時,一切正常,但是,在顯示功能上我得到一個錯誤:如果我寫了一些口袋妖怪來搜索并點擊搜索它不起作用但是,如果我改變它并再次點擊,我會得到第一個口袋妖怪值。
未捕獲的型別錯誤:無法讀取未定義的屬性(讀取“名稱”)
我添加了獲取功能和顯示功能,如果有人想提供幫助,我也可以發送 git 存盤庫。恩克斯
let fetetchPokemon = function (inputNum) {
fetch(`${pokemonApi}` `${inputNum}`)
.then((response) => response.json())
// .then((response) => console.log(response))
.then(
(response) =>
(pokemon = new Pokemon(
response.name,
response.sprites,
response.moves,
response.types,
response.abilities
))
)
// .then((pokemon) => console.log(pokemon.name));
// .then((pokemon) => console.log(pokemon.name))
.then(displayPokemon());
};
let displayPokemon = function () {
pokemonName.innerText = pokemon.name;
console.log(pokemon.name);
pokemonImg.src = pokemon.image.front_default;
displayMoves(pokemon.moves);
displayType(pokemon.types);
displayAbilities(pokemon.abilities);
};
還有一個bin看代碼: https ://jsbin.com/puvotid/edit?html,css,js,output
uj5u.com熱心網友回復:
顯示方法必須與變數分配放在相同的范圍內。所以方法看起來像
const fetetchPokemon = function (inputNum) {
fetch(`${pokemonApi}` `${inputNum}`)
.then((response) => response.json())
.then(
(response) => {
pokemon = new Pokemon(
response.name,
response.sprites,
response.moves,
response.types,
response.abilities
);
displayPokemon();
}
);
};
正如@Mamoud 下面的回答,您應該單獨使用 async/await 或回呼,而不是同時使用兩者
uj5u.com熱心網友回復:
使用async
andawait
等待結果。
const fetchPokemon = async function(){
await fetch(...).then(...)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/494318.html
標籤:javascript api 前端 拿来
下一篇:轉置由空白行分隔的范圍