【问题标题】:nodejs get request is blocking loadtest, needed non blockingnodejs获取请求阻塞负载测试,需要非阻塞
【发布时间】:2020-11-18 01:11:19
【问题描述】:

我正在尝试在获得 nodejs 路由后重新请求另一个网址。

所以

route('/get')

request('google.com.')
res.end(200)

当我尝试使用此代码进行负载测试时。应用无法同时处理请求。

如何解决这个问题以并行运行?

【问题讨论】:

    标签: node.js


    【解决方案1】:

    如果你想并行化它并在调用end之前等待一切返回,你可以使用 Promise.all。

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all

    const promise1 = Promise.resolve(3);
    const promise2 = 42;
    const promise3 = new Promise((resolve, reject) => {
      setTimeout(resolve, 100, 'foo');
    });
    
    Promise.all([promise1, promise2, promise3]).then((values) => {
      console.log(values);
    });
    

    【讨论】:

      猜你喜欢
      • 2013-11-12
      • 1970-01-01
      • 2021-08-28
      • 2020-03-04
      • 1970-01-01
      • 1970-01-01
      • 2015-10-16
      • 2012-12-24
      • 1970-01-01
      相关资源
      最近更新 更多