Rumah > Soal Jawab > teks badan
Saya hanya akan menulis fikiran saya di bawah
fungsi demo(){
let data=[];
fetch(xxx).then((res)=>{
data.push(res);
})
return data;
}
Memandangkan ia adalah permintaan tak segerak, data yang dikembalikan masih merupakan tatasusunan kosong, bukan tatasusunan yang mengandungi data yang diminta. Jadi adakah terdapat cara untuk mendapatkan data dan kemudian mengembalikannya?
淡淡烟草味2017-05-19 10:22:15
Adalah mustahil untuk mengembalikan nilai secara tidak segerak
Nilai hanya boleh diproses dalam fungsi panggil balik
ringa_lee2017-05-19 10:22:15
function demo(){
let data=[];
return fetch(xxx).then((res)=>{
data.push(res);
})
}
demo().then(data=>console.log(data))
过去多啦不再A梦2017-05-19 10:22:15
Gunakan kaedah async/tunggu
async function demo(){
let data=[];
await fetch(xxx).then((res)=>{
data.push(res);
})
return data;
}
Kemudian laksanakan fungsi
黄舟2017-05-19 10:22:15
Gunakan tunggu, perhatikan keperluan untuk membina
async function demo(){
const response = await fetch(url, options);
// todo: 异常处理
const data = await response.json();
return data;
}
Rujuk es6 menanti