gpt4 book ai didi

javascript - Zeit 的 "micro"从未解决 promise

转载 作者:行者123 更新时间:2023-11-30 20:47:17 25 4
gpt4 key购买 nike

我正在为一小段代码挠头,它永远不会解决 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com