访问返回的承诺的结果

Accessing the result of a returned promise

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

console.log(getRemoteData())

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

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

我已经尝试搜索 SO,我找到的所有答案都指向 .then() 方法中的 //do something with the returned data 评论,但我想从那里了解我应该做什么。返回值是 array[].

fetch(...)returns一个承诺,response.json()returns另一个承诺。

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

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

结构可以像 async 函数 (ES2017) 中的同步代码一样被扁平化。它们是 promises 的语法糖,这个片段与上一个片段相同:

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

如果您仍在使用 ES2015,则使用 co

var co = require('co');

co(function *(){
    // yield any promise
    var result = yield getRemoteData();
}).catch(onerror);