如何从异步函数中获取 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")
我有这个检索数据的功能,但是我遇到了以下错误 留言:
未捕获类型错误:无法读取未定义的 属性 '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")