2013-08-30 2 views
1

저는 여전히 함수 콜백과 작동 방식에 대해 고민하고 있습니다. 나는 그것이 자바 스크립트의 중요한 부분임을 이해합니다. 예를 들어, node.js 문서의 writeFile 메소드의 경우,이 함수 콜백은 무엇을합니까? 이 함수는 err에 대한 입력을 어떻게 가질 수 있습니까?Node.js에있는 function (err) 콜백

fs.writeFile('message.txt', 'Hello Node', function (err) { 
    if (err) throw err; 
console.log('It\'s saved!'); 
}); 
+0

함수는 객체입니다. 함수 객체를'writeFile' 메쏘드에 전달하고 있습니다. 그 메소드는 그것을 받아 들여 적절한 시간에 호출하고,'err' 매개 변수에 값을 전달합니다. 보고 할 오류가 없다면 아마도 'null'또는 'undefined'가 전달됩니다. 나는 어느 것을 기억하지 못한다. –

답변

10

fs.writeFile 오류가 발생하는 경우에 err로 콜백 함수에 error을 전달합니다.

wakeUpSnorlax는 fs.writeFile 때 호출 할 콜백 함수를 소요에 fs.writeFile처럼, 본 실시 예

2초 이상

function wakeUpSnorlax(done) { 

    // simulate this operation taking a while 
    var delay = 2000; 

    setTimeout(function() { 

    // 50% chance for unsuccessful wakeup 
    if (Math.round(Math.random()) === 0) { 

     // callback with an error 
     return done(new Error("the snorlax did not wake up!")); 
    } 

    // callback without an error 
    done(null);   
    }, delay); 
} 

// reusable callback 
function callback(err) { 
    if (err) { 
    console.log(err.message); 
    } 
    else { 
    console.log("the snorlax woke up!"); 
    } 
} 

wakeUpSnorlax(callback); 
wakeUpSnorlax(callback); 
wakeUpSnorlax(callback); 
... 위의 예에서

the snorlax did not wake up! 
the snorlax did not wake up! 
the snorlax woke up! 

고려 수행. fs.writeFile이 실행 중 감지하고 오류가 발생하면 Error을 콜백 함수에 전송할 수 있습니다. 문제없이 실행되면 오류없이 콜백을 호출합니다.

+0

고맙습니다. – dazer

+0

@naomik'Number.isNaN ('x') -> false'. 고쳐. – zsong

+0

@sza, 거기에'parseInt'를 잊어 버렸습니다. – naomik

관련 문제