访问返回的承诺的结果

时间:2017-12-07 03:54:50

标签: javascript ecmascript-6 es6-promise fetch-api

我试图更好地理解承诺并实现了基本上如下的代码:



console.log(getRemoteData())

function getRemoteData (){
  return fetch('http://w.x.y.z')
  .then(response => {
    return response.json();
  });
}




假设getRemoteData()返回一个承诺,我该如何访问该响应的值?我已经尝试在登录到控制台之前解决了这个承诺,除了记录承诺obj之外,我无法做任何事情。我想我错过了承诺如何运作的基本组成部分。

我已经尝试搜索过,我发现所有答案都指向//do something with the returned data方法中的.then()评论,但我想知道我应该从那里做些什么。返回的值为array[]

2 个答案:

答案 0 :(得分:1)

fetch(...)会返回一个承诺,response.json()会返回另一个承诺。

返回的值不是数组,而是数组的 promise 。它应该是:

getRemoteData().then(result => {
  console.log(result);
});

async函数(ES2017)中的同步代码类似,结构可以展平。它们是承诺的语法糖,这个片段与前一个相同:

(async () => {
    const result = await getRemoteData();
    console.log(result);
})();

答案 1 :(得分:1)

如果您还在ES2015上,请使用co

malloc