javascript - Die Funktion enthält eine Abrufanforderung. Wie kann ich das Ergebnis der Abrufanforderung über die Funktion zurückgeben?
PHP中文网
PHP中文网 2017-05-19 10:20:15
0
4
769

Ich werde unten einfach meine Gedanken niederschreiben

Funktionsdemo(){

let data=[];
fetch(xxx).then((res)=>{
    data.push(res);
})
return data;

}

Da es sich um eine asynchrone Anfrage handelt, sind die zurückgegebenen Daten immer noch ein leeres Array und kein Array, das die angeforderten Daten enthält. Gibt es also eine Möglichkeit, die Daten abzurufen und dann zurückzugeben?

PHP中文网
PHP中文网

认证0级讲师

Antworte allen(4)
淡淡烟草味

异步是不可能return值出去的

值只能在回调函数中处理

左手右手慢动作
function demo(){
    let data=[];
    return fetch(xxx).then((res)=>{
        data.push(res);
    })
}
demo().then(data=>console.log(data))
过去多啦不再A梦

使用async/await方式

async function demo(){
    let data=[];
    await fetch(xxx).then((res)=>{
        data.push(res);
    })
    return data;
}

然后执行该函数

黄舟

用await,注意需要构建

async function demo(){
    const response = await fetch(url, options);
    // todo: 异常处理
    
    const data = await response.json();
    return data;
}

参考es6 await

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage