2017-01-31 2 views
1

오늘 많은 예제를 살펴 보았습니다.약속 완료가 끝나기를 기다리는 중임

let f =() => { 
    return new Promise((res, rej) => { 
     console.log('entering function'); 
     setTimeout(() => { 
      console.log('resolving'); 
      res() 
     }, 2000) 
    }); 
}; 

Promise.resolve() 
    .then(f()) 
    .then(f()); 

예상 출력은 다음과 같습니다 :

entering function 
resolving 
entering function 
resolving 

을하지만 그것을하지 않습니다 그들은 다음과 같은 코드가 체인에서 실행되어야 함을 제안하는 것. 출력은

entering function 
entering function 
resolving 
resolving 

이며 이유를 파악할 수 없습니다. 어떤 도움을 많이 주시면 감사하겠습니다.

답변

8

then(f) 대신

thenthen(f())로하는 기능을 기대하십시오.

당신은 또한 다음`전화, then(()=>f())

+1

추가 도움말을 수행 할 수 있습니다 (f를())'바로 –

+0

그 것이었다 그 함수를 호출합니다. 고맙습니다 – Adam

관련 문제