如何从异步函数中获取 return 值

How to return value out of an asynchron function

我有这个检索数据的功能,但是我遇到了以下错误 留言:

未捕获类型错误:无法读取未定义的 属性 'done'。

看来,return 功能无法正常工作。会很开心 寻求帮助。我仍然对回调函数有疑问。

感谢您的帮助!

function getData(evt){
    fetch (evt)
    .then (function (response) {
        return response.json();
    });
}
getData("/getfile/xy").done(function(data){
    // do something
    console.log(data);
});

response.json() 也是一个异步操作,因此您需要将其视为一个承诺,如下所示:

function getData(evt){
    fetch (evt)
    .then (function (response) {
        return response.json()
    }).then(function(data){
        console.log("DATA",data);
    })
}

你用 Async & await 方式来做:-

async function getData(evt) {
  return await fetch (evt)
  .then (response => response.json())
  .then(data => {
    return data
  })
}

// retrieve it anywahere (this must be in an 'async' function to work)
let dataRetrieved = await getData("/getfile/xy")