我正在为一小段代码挠头,它永远不会解决 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 ,代码是正确的,只是我不明白为什么 promise 不记录响应,而终端只是闪烁光标。
感谢任何形式的帮助。
最佳答案
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
这样的库来将 promises 与 IncomingMessage
集成
const { data } = await axios({ url, responseType: 'stream' });
const jsonData = await json(data, { encoding: 'utf8' });
但是请注意,axios 和其他此类库也内置了响应的 JSON 解析。
关于javascript - Zeit 的 "micro"从未解决 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48571805/