suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript - Die Funktion enthält eine Abrufanforderung. Wie kann ich das Ergebnis der Abrufanforderung über die Funktion zurückgeben?

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中文网2823 Tage vor801

Antworte allen(4)Ich werde antworten

  • 淡淡烟草味

    淡淡烟草味2017-05-19 10:22:15

    异步是不可能return值出去的

    值只能在回调函数中处理

    Antwort
    0
  • ringa_lee

    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))

    Antwort
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-19 10:22:15

    使用async/await方式

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

    然后执行该函数

    Antwort
    0
  • 黄舟

    黄舟2017-05-19 10:22:15

    用await,注意需要构建

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

    参考es6 await

    Antwort
    0
  • StornierenAntwort