Maison > Questions et réponses > le corps du texte
Je vais simplement écrire mes pensées ci-dessous
démo de fonction(){
let data=[];
fetch(xxx).then((res)=>{
data.push(res);
})
return data;
}
Puisqu'il s'agit d'une requête asynchrone, les données renvoyées sont toujours un tableau vide, pas un tableau contenant les données demandées. Alors, existe-t-il un moyen d'obtenir les données et de les restituer ensuite ?
淡淡烟草味2017-05-19 10:22:15
Il est impossible de renvoyer la valeur de manière asynchrone
Les valeurs ne peuvent être traitées que dans les fonctions de rappel
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
Utiliser la méthode async/await
async function demo(){
let data=[];
await fetch(xxx).then((res)=>{
data.push(res);
})
return data;
}
Ensuite, exécutez la fonction
黄舟2017-05-19 10:22:15
Utilisez wait, faites attention à la nécessité de construire
async function demo(){
const response = await fetch(url, options);
// todo: 异常处理
const data = await response.json();
return data;
}
Référez-vous à es6 wait