温馨提示×

Linux下JS如何处理并发请求

小樊
46
2025-11-22 18:59:27
栏目: 编程语言

在Linux环境下,使用JavaScript处理并发请求的常见方法是使用异步编程。这里有两种常用的方法来处理并发请求:

  1. 回调函数(Callback)

回调函数是一种传统的处理异步操作的方法。在这种方法中,我们将一个函数作为参数传递给另一个函数,当异步操作完成时,这个函数会被调用。这是最基本的方法,但可能导致回调地狱(Callback Hell),使得代码难以阅读和维护。

示例:

const http = require('http');

function getRequest(url, callback) {
  const req = http.get(url, (res) => {
    let data = '';

    res.on('data', (chunk) => {
      data += chunk;
    });

    res.on('end', () => {
      callback(null, data);
    });
  });

  req.on('error', (err) => {
    callback(err);
  });

  req.end();
}

getRequest('http://example.com', (err, data) => {
  if (err) {
    console.error(err);
  } else {
    console.log(data);
  }
});
  1. Promise 和 async/await

Promise 是一种更现代的处理异步操作的方法。它表示一个尚未完成但预计将来会完成的操作。Promise 可以让我们以更简洁的方式编写异步代码,并避免回调地狱。

async/await 是基于 Promise 的一种语法糖,它允许我们以同步的方式编写异步代码。

示例:

const http = require('http');

function getRequest(url) {
  return new Promise((resolve, reject) => {
    const req = http.get(url, (res) => {
      let data = '';

      res.on('data', (chunk) => {
        data += chunk;
      });

      res.on('end', () => {
        resolve(data);
      });
    });

    req.on('error', (err) => {
      reject(err);
    });

    req.end();
  });
}

async function main() {
  try {
    const data = await getRequest('http://example.com');
    console.log(data);
  } catch (err) {
    console.error(err);
  }
}

main();

这两种方法都可以在Linux环境下使用JavaScript处理并发请求。但是,推荐使用Promise和async/await,因为它们提供了更好的代码可读性和错误处理。

0