NodeJS获取承诺回调挂起

时间:2017-09-18 09:25:34

标签: javascript node.js promise

我有这段代码:

fetch(url).then(response => {
  const json = response.json();
  console.log('simplest possible fetch', json, json.where);
});

在控制台中我得到:

simplest possible fetch Promise {[[PromiseStatus]]: "pending", [[PromiseValue]]: undefined} undefined

我得到了大多数的时间。有时我会得到成功"状态。对我而言,这意味着在获取提交已解决之前正在运行回调。

我希望只有在fetch完成时才能运行该函数。我该怎么做?

1 个答案:

答案 0 :(得分:10)

response.json()返回一个承诺,使用then回调来获取数据:

  

Body mixin的json()方法接受一个Response流并将其读取完成。它返回一个promise,解析为将正文解析为JSON的结果。

fetch(url)
  .then(response => response.json())
  .then(data => console.log('simplest possible fetch', data, data.where));