について;/bは/ aが完了するまで処理されません。それが1つのスレッドならば、そうでなければなりません。では、この問題を解消する方法は何ですか?NodeJS Parallesim次の例を考えてみ
例2:これは、関数に入るdb.find呼び出し、そうdb.findが完了したとき、コールバックres.send(データ)を実行するよう
app.get("/a", function(res){
// Some-Library-Database function
db.find({"user.id" : 5}, function(data){
res.send(data);
});
});
app.get("/b", function(res){
res.send("done");
});
ここでも、/ Aが要求されています私たちは/ bを待つことなく応答することができます。 (私が間違っていると私を訂正してください)
したがって、例1の例2もどうやって達成できますか?私たちはそのブロック機能を非同期で実行することもできますか?または、DBがIO(TCP経由でサーバにコマンドを送信するなど)が機能を非同期にしていますか?つまり、nodejsのIOで非同期の唯一のものは何ですか?大きな計算が必要な場合は、IO要求を行う必要がありますか?
私は概念に従って学習し、構築しようとしています。私はノードについての批判を読むためにNodeJS is cancerの投稿を読んだことがあります。彼がただトローリングしているかどうかはわかりません。
をリンクして:「app.js」
編集が親で処理するコードを「ブロック」を使用していませんノンブロッキングノードの代替)またはCPUバインドされたタスク(おそらくそれはC/C++のようなものに書き直す価値があります) –
リンクが壊れているようです – Annan