在服务器端 Node.js 我有一个简单的 http.request ...这是在 shell 上运行的简单 script.js 中。
async function postRequest(_options, data) {
return new Promise((resolve, reject) => {
const req = https.request(_options, (res) => {
let response = '';
res.on('data', (chunk) => {
response += chunk
})
res.on('end', () => {
resolve(response);
})
})
req.on('error', (err) => {
reject(err)
})
req.write(data)
req.end()
})
}
称为喜欢
const resp = await postRequest(opt, JSON.stringify(req))
我只是添加了这个
res.on('data', (chunk) => {
response += chunk
console.log(">> ", response.length)
})
下载 100s mb,因此在几分钟内有 100 个控制台日志。
不幸的是它不起作用 - 一百个控制台日志仅在完成承诺后在最后吐出。
如何简单地实时查看这些消息?我尝试过使用console.error、process.stdout.write等,但可能我在其中犯了一些小错误。
如何在 Promise 进行过程中实时查看日志消息?
问题演示:
当服务器处理请求 2 分钟然后才开始响应时,所描述的行为是预期的。通过在收到
res
ponse(或其状态代码、标头等)后(在开始流式传输之前)立即记录它,您可以验证这一点。