首页 > 解决方案 > 为什么 async/await 不等待节点的 http.get()?

问题描述

我现在正在学习 Node.js,我有一个关于异步内容的问题。

这是一个代码:

const http = require("http"),
    [_, _1, url1, url2, url3] = process.argv;

let strings = '';

const fetchData = async () => {
    const firstReq = await http.get(url1, data => {
        data.on('data', chunk => {
            strings += chunk
        })
    });

    const logRes = await test()
    return firstReq
}

const test = () => {
    console.log(` --- `, strings);
}

fetchData();

我期待该节点将对 url 发出 GET 请求,将块添加到变量,然后调用下一步await,这将console.log产生带有数据的字符串。

现在代码执行只打印空字符串。

为什么 async/await 在这里不起作用?是因为http.get()不返回任何东西吗?

谢谢!

标签: javascriptnode.js

解决方案


推荐阅读