이 주제에 관한 몇 가지 질문은 stackoverflow에서 읽었지만 그 중 아무 것도 내 의구심에 대답하는 것 같지 않습니다.JavaScript async non-blocking functions without process
var async_function = function(val, callback){
process.nextTick(function(){
callback(val);
});
};
나는 또한에 대한 Promise을 읽었습니다, 그러나 당신은 어떻게 등등 공정, 약속 등의 라이브러리를 사용하지 않고 비동기 비 차단 함수를 작성 않습니다
나는 process.nextTick를 사용하여 비동기 기능을 만드는 방법을 알아?
기본 방법은 무엇입니까? 나는이 방법에 첫번째 생각 :
var async = function(val, cb) {
cb(val);
}
그러나, 기능 블록 :
async(3, function(val) {
console.log(val);
});
console.log(4);
// returns:
3
4
그래서 올바른 구현은 무엇입니까? 라이브러리에 의존하지 않고 어떻게 비동기 함수를 작성할 수 있습니까?
난 당신이 정말 API를하지 않으려는 알고 있지만 나는 최근에 자바 스크립트에 대한 반응 확장에이 비디오를 우연히, 그리고 매혹적인 발견했다. 왜 바퀴를 재발견합니까? http://channel9.msdn.com/Blogs/codefest/DC2010T0100-Keynote-Rx-curing-your-asynchronous-programming-blue –
"비동기"와 "비 차단"은 같은 것이 아니라는 점에 유의하십시오. 이 답변 ('process.nextTick','setTimeout' 등)에있는 지시 사항을 따르면 콜백은 비동기 적으로 실행되지만 일단 실행을 시작하면 여전히 이벤트 루프를 차단합니다. –