我有一个结果变量,我试图用Fetch来填充assign数组。它一直未定义,函数也一直返回承诺。我可以控制它,但结果总是未定义。
const url = 'https://www.w3schools.com/angular/customers.php';
let result;
function getData(){
return fetch(url)
.then(response => response.json())
.then(data => result = data.records)
}
getData();
let list = getData();
console.log(result) // undefined
console.log(list) // Promise {}
你可以在回调函数中获取数据,或者在解决了承诺后获取数据。
function getData(){
return fetch(url)
.then(response => response.json())
.then(data => {
result = data.records
console.log(result)
})
}
如果你想以同步的方式编写(你在代码中尝试的方式),你应该使用async函数和await for promise,参考这个文档。https:/developer.mozilla.orgen-USdocsLearnJavaScriptAsynchronousAsync_await。