someevent
이벤트가 시작되면 계속하기 전에 약속이 해결되기를 기다리기 만하면됩니다. 그러나 slowFunctionThatReturnsPromise는 해결하는 데 오랜 시간이 걸리고 전체 프로세스는 해결되기 전에 종료됩니다. 그러므로 결코 완료되지 않습니다. 나는 then
을 사용하여 해결할 약속을 기다릴 것이라고 생각했지만, 왜 기다리지 않는지는 알 수 없습니다. 당신은 Node.js를 "종료"이벤트에 그것을 할 수 없습니다emitter.on 리스너 함수 내에서 해결 될 때까지 기다리십시오.
emitter.on('someevent', listener)
var listener = function()
{
x.slowFunctionThatReturnsPromise()
.then(function()
{
console.log('done');
})
}
* Waiting * 및 * asynchronous *는 서로 반대입니다. * 동기식 * 코드는 동일한 호출 스택의 다른 코드를 계속 사용하기 전에 프로세스를 계속 사용 중 상태로 유지하지만 * asynchronous * 코드는 현재 실행중인 호출 스택이 완료된 후에 만 호출됩니다. – trincot
'listenF '함수를 종료하기 전에'slowFunctionThatReturnsPromise'에 의해 반환 된 약속이 필요합니다. – jmccure
'then' 콜백은 비동기 적으로 실행되기 때문에 리턴하기 전에 콜백이 실행되지 않습니다. 약속이지만, 현재 코드 작업이 완료된 후에. 그래서 : 불가능합니다. – trincot