不能将取来的数组分配给一个变量[重复]。

问题描述 投票:-1回答:1

我有一个结果变量,我试图用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 {}

https:/stackblitz.comeditjs-E7x6xj

javascript asynchronous fetch es6-promise angular-promise
1个回答
1
投票

你可以在回调函数中获取数据,或者在解决了承诺后获取数据。

  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。

© www.soinside.com 2019 - 2024. All rights reserved.