이해 ;/b는/a가 완료 될 때까지 처리되지 않습니까? 그것이 하나의 스레드라면, 그렇게해야합니다. 그래서이 문제를 제거하는 방법은 무엇입니까?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를 통해 서버에 명령 보내기 등) 기능을 비동기로 만드는가? 내 말은, 노드 J의 IO에서만 비동기입니까? 큰 계산이 필요하면 IO 요청을해야합니까?
나는 개념에 따라 배우고 만들려고 노력하고있다. 나는 노드에 대한 비평을 읽을 NodeJS is cancer 게시물을 읽었는데, 그가 단지 조업 중인지 아닌지 확실하지 않습니다.
연결을 'app.js'
편집 부모에 처리 할 코드를 '차단'사용하지 않는 논 블로킹 노드 대체) 또는 CPU 바운드 작업 (아마도 C/C++과 같은 것으로 다시 작성해야 할 가치가 있음) –
링크가 손상된 것으로 보입니다 – Annan