小编pau*_*901的帖子

为什么 Web 服务器仍然使用 http 1.1 而不是 http 2?

作为一点背景知识,我刚刚完成了训练营并开始深入研究网络和网络服务器。

在阅读了有关 OSI 模型、TCP/IP 模型和 HTTP 的一些信息后,我发现这些理论知识与我在现实生活中所做的之间存在某种差距。

例如,我用在 node.js 上运行的服务器构建了几个项目。直到最近我才发现它们在 HTTP 1.1 上运行。

我看到的所有教程课程或其他示例都使用 HTTP 1.1 而不是 HTTP 2。

理论上,HTTP2 在处理大量数据方面做得更好,而且确实比 HTTP 1.1 更安全。

尽管存在一些缺点,但 http2 似乎是 http 的高级形式,并且在过去几年中已经成熟。

我很难理解为什么服务器语言(或 node.js 的运行时)仍然使用 HTTP 1.1 而不是 2。

谁能解释一下?

networking http backend node.js http2

2
推荐指数
1
解决办法
387
查看次数

Promise.all 实际上在幕后做了什么?

我试图在这里理解 Promise.all 。我在这里所做的是使用 Promise.all 隐藏下面的代码以达到相同的结果。我理解Promise都是结合了data1,data2。我的问题是,如果没有解析方法,Promise.All 如何工作?Promise 是否在方法本身内解析这些数据?

请指教。

const readAllUsersChaining = () => {
  return new Promise((resolve, reject) => {
    let result = [];
    getDataFromFilePromise(user1Path)
      .then((data) => {
        result.push(JSON.parse(data)); // what are you doing? he's gone mad...
        return getDataFromFilePromise(user2Path);
      })
      .then((data) => {
        result.push(JSON.parse(data));
        result ? resolve(result) : reject(result);
      });
  });
};

Run Code Online (Sandbox Code Playgroud)
const readAllUsers = () => {
  const data1 = getDataFromFilePromise(user1Path);
  const data2 = getDataFromFilePromise(user2Path);
  console.log(data1, data2);
  return Promise.all([data1, data2]).then((data) => {
    return data.map((el) => JSON.parse(el));
  });
};

Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

javascript asynchronous resolve promise

1
推荐指数
1
解决办法
997
查看次数