首页 > 解决方案 > 电子中的并发http请求(并发)?

问题描述

我正在尝试从电子应用程序发送到 http 请求。两个请求都需要 10 秒才能得到响应。

var app = require('electron').app;
app.whenReady().then(function () {
    var net = require('electron').net;

    var request0 = net.request('http://httpbin.org/delay/10');
    console.log(new Date().toISOString(), 'created Request0');
    request0.on('response', function (response) {
        console.log(new Date().toISOString(), "STATUS: " + response.statusCode); 
    });
    console.log(new Date().toISOString(), 'before request0 end');
    request0.end();
    console.log(new Date().toISOString(), 'after request0 end');

    var request1 = net.request('http://httpbin.org/delay/10');
    console.log(new Date().toISOString(), 'created Request1 to');
    request1.on('response', function (response) {
        console.log(new Date().toISOString(), "STATUS: " + response.statusCode);
    });
    console.log(new Date().toISOString(), 'before request1 end');
    request1.end();
    console.log(new Date().toISOString(), 'after request1 end');
});

我希望两个响应都会以很小的时间差收到(在脚本开始后约 10 秒后),但我看到响应有 10 秒的差异。因此,如果第一个请求没有完成,看起来第二个请求不会开始。

2021-04-28T09:11:00.754Z created Request0
2021-04-28T09:11:00.754Z before request0 end
2021-04-28T09:11:00.754Z after request0 end
2021-04-28T09:11:00.754Z created Request1 to
2021-04-28T09:11:00.754Z before request1 end
2021-04-28T09:11:00.754Z after request1 end
2021-04-28T09:11:11.055Z STATUS: 200
2021-04-28T09:11:21.178Z STATUS: 200

是否有可能改变这种行为?

标签: node.jselectronchromium

解决方案


推荐阅读