私はNode.jsアプリケーションを持っており、同時に2つのリクエストをノードApiに送信すると、キューに入れられているように見えます。つまり、2回目のリクエストの時間は、最初のリクエストの時間に2回目のリクエストの時間を加えた時間です(リクエストを単独で起動した場合)。Node.jsが同時に複数のリクエストを処理する方法
だから私は簡単なテストでした:
app.get('/api/testpromise', function(req, res) {
sess = req.session;
var controller = new Controller(req, res, sess);
controller.testPromise()
.then(function(){
controller.testPromise()
.then(function(){
res.status(200);
res.json({});
});
})
})
testPromise()メソッドは、単にループを行います。
Controller.prototype.testPromise = function(callback){
return new Promise(function(resolve, reject) {
var count = 0;
for (i = 0; i < 500000000; i++) {
count++;
}
if(count) {
resolve(count);
} else {
reject(count);
}
});
}
を、私は私から同時に 'testpromise' に2つの要求をオフに解雇フロントエンドは最初に約5秒かかり、およそ10秒かかります。したがって、2番目のものは最初のものの後ろに並んでいるように見えます。
私はノードについて読んだことから、私はこのような動作を見ませんでしたか?ノードは、多くの同時リクエストを受け取り、それらを引き渡すことに本当に良いと言われています。だから、これは実際にどのように機能しますか?
JSはシングルスレッドであり、Promisesを使用してもループはこのスレッドの他のコードの実行をブロックします。 [nodejsでスレッドを作成する方法](/ a/18613311/6567275) – Thomas