>

코드 순서가 어떻게 실행되는지 이해할 수없는 문제가 발생했습니다. 내가 가지고 있다고 가정 해 봅시다 :

console.log("0");
foo();
console.log("1");
function foo(){
       console.log("2");
       jsonfile.readFile('test.json', function(err, obj){
            console.log("3");
       });
       console.log("4");
}

"0 2 3 4 1"을 예상 할 때 위 프로그램의 출력은 "0 2 4 1 3"입니다.

이러한 이유는 무엇입니까?

  • 답변 # 1

    jsonfile.readFile   console.log("3") 로 콜백 함수를 실행합니다.  파일을 읽은 후에이후하십시오.

    와이즈 비즈  성명서 aber console.log("4")  예상대로 파일을 읽은 후가 아니라 파일을시작한 직후에 실행됩니다.

    이를비동기라고합니다.

    JavaScript 및 Node.js의 많은 기능은이 개념을 기반으로합니다.

    다음은 비동기 함수 호출을 처리하는 방법에 대한 자세한 정보가있는 관련 질문입니다.

    비동기 호출에서 응답을 어떻게 반환합니까?

  • 답변 # 2

    jsonfile.readFile  비동기입니다. 파일을 읽으면 콜백 함수가 호출됩니다.

    한편, 나머지 readFile  실행이 완료됩니다.

    foo

관련 자료

  • 이전 vbnet SQL SERVER" '='근처의 구문이 잘못되었습니다"
  • 다음 rnn - Tensorflow를 사용한 예측을위한 다중 계층 LSTM