2016-12-19 1 views
3

특정 기능이 필요에 따라 실행되지 않으면 NodeJS가 실행을 중단하도록 약속을 사용하고 있습니다. 이 시점에서 서버는 필요에 따라 중단되지만 기능이 성공적으로 약속을 이행하면 콘솔 로그를 포함하고자합니다. npm 'q'모듈을 사용하고 있습니다.약속이 이행 된 경우에만 어떻게 실행합니까?

작업 코드

Q.all([ 
    someFunction1(), 
    someOtherFunction('https://www.google.com', 'Google'), 
    someOtherFunction('https://www.facebook.com', 'Facebook'), 
]) 
    .catch(function (err){ 
     console.log(err); 
     process.exit(1); 
}) 

약속이 완료된 따라서 CONSOLE.LOG 호출없이 약속이 충족되거나 거부되는지의 여부를 실행하기 전에 다음 아래에 따라 상기 다음 실행 첨가.

Q.all([ 
    someFunction1(), 
    someOtherFunction('https://www.google.com', 'Google'), 
    someOtherFunction('https://www.facebook.com', 'Facebook'), 
]) 
    .then(console.log("No problem here")) 
    .catch(function (err){ 
     console.log(err); 
     process.exit(1); 
}) 
+1

당신이 당신의 기능에서 약속을 반환하고 있습니까? .all []에 포함 된 함수에서 약속되지 않은 값이 반환되면 즉시 평가됩니다. –

+0

약속이 반환되었지만 기억해야 할 유용한 점입니다. 감사합니다. – aaaidan

답변

5

당신은 현재 위치에서 console.log을 요구하고있다, 그래서 관계없이 약속 성공 또는 실패 여부에 호출됩니다.

는 성명으로 로그를 포함 .then에 함수를 전달하고, 이것은 단지 Q.all(...)의 성공에 호출됩니다

.then(function() { 
    console.log("No problem here"); 
})