为什么未解决“承诺{<pending>}”?

Boo*_*cat 3 javascript node.js isomorphic-fetch-api

我正在尝试从Storm Glass API中获取数据。我正在使用他们的模板提取请求(https://docs.stormglass.io/?javascript#point-request)。

当我运行脚本时,控制台会Promise { <pending> }无限期读出“ ”。因此,请求未返回值,但我无法弄清楚原因。有任何想法吗?

我已将我的API密钥替换为 <My API key>

const http = require('http')
const fetch = require('isomorphic-fetch');

http.createServer((req, res) => {

////////////////////////////////////////////////App code
const lat = 58.7984;
const lng = 17.8081;
const params = 'waveHeight,airTemperature';

fetch(`https://api.stormglass.io/point?lat=${lat}&lng=${lng}&params=${params}`, {
  headers: {
    'Authorization': '<My API key>'
  }
}).then(function(response) {
  // Do something with response data.
  const jsonData = response.json();
  console.log(jsonData)
});

/////////////////////////////////////////////////////////
}).listen(3000);

console.log("service running on http://localhost:3000");
Run Code Online (Sandbox Code Playgroud)

gre*_*tro 5

response.json函数返回一个Promise,而不是反序列化的对象。您的代码应为:

fetch(`https://api.stormglass.io/point?lat=${lat}&lng=${lng}&params=${params}`, {
  headers: {
    'Authorization': '<My API key>'
  }
})
.then(response => response.json())
.then(function(jsonData) {
  // Do something with response data
  console.log(jsonData)
});
Run Code Online (Sandbox Code Playgroud)