Zeit的“微观”从未解决承诺

时间:2018-02-01 21:12:40

标签: javascript node.js promise microservices

我正在抓住一小段代码,从未解决promise。它甚至没有告诉我promise可能被拒绝了。

const https = require('https'),
    {
        json
    } = require('micro')

module.exports = async () => {
    let response = https.get('https://jsonplaceholder.typicode.com/posts/1')
    const jsonData = await json(response, {
        encoding: 'utf8'
    })
    console.log(jsonData)
}

阅读documentation,代码是正确的,只是我不明白为什么诺言没有记录响应,而终端只是闪烁光标。

感谢任何形式的帮助。

1 个答案:

答案 0 :(得分:1)

json用于处理来自您的服务器的传入请求(http.IncomingMessage)的请求正文。 https.get会返回ClientRequest。您需要使用https的回调来获取响应:

https.get('https://jsonplaceholder.typicode.com/posts/1', async res => {
  const jsonData = await json(res, {
    encoding: 'utf8'
  });
  console.log(jsonData)
});

您可能希望使用axios等库来将承诺与IncomingMessage

集成
const { data } = await axios({ url, responseType: 'stream' });
const jsonData = await json(data, { encoding: 'utf8' });

但是请注意,axios和其他类似的库也内置了JSON解析响应。