es6 promise 예제

약속은 비동기 함수(나중에 응답을 반환하지 않을 수 있음) 내부에서 생성된 다음 반환됩니다. 이벤트가 발생하면 비동기 함수는 외부 세계에 알리는 약속을 업데이트합니다. then() 콜백에서 무언가를 반환하면 약간의 마법이 됩니다. 값을 반환하는 경우 다음 다음()이 해당 값으로 호출됩니다. 그러나 약속과 같은 것을 반환하면 다음() 약속이 해결될 때만 호출됩니다(성공/실패). 예를 들어: 이것은 간단합니다. promise.catch(처리기)는 promise.then(null, 처리기)과 동일합니다. 거기에 많은 약속 라이브러리가 있습니다. 다음 것들은 ECMAScript 6 API를 따르므로 지금 사용하고 나중에 기본 ES6로 쉽게 마이그레이션할 수 있습니다.

우리는 줄 (A)로 약속을 반환하고 현재 메서드 내부에 다음 ()에 대한 호출을 중첩 할 필요가 없었으며 메서드의 결과에 다음 ()을 호출 할 수 있습니다. 따라서 다음 () 중첩되지 않은 모든 것이 평평하게 유지됩니다. 우리의 첫 번째 구현은 최소한의 기능을 가진 독립 실행형 약속입니다: 위의 예에서 한 가지 흥미로운 점은 try/catch 블록과 약속 블록 간의 유사성입니다. 어떤 사람들은 지연 된 시도 / 캐치 블록의 일종으로 약속에 대해 생각하는 것을 좋아합니다 – 나는 하지 않지만, 나는 그것이 다치게 할 수 없다고 생각한다. 몇 가지 예에서 이러한 기본 구성 요소를 사용해 보겠습니다. 어느 것을 이해하기 쉽게 찾을 수 있습니까? 약속 버전, 또는 콜백 버전? 내가 코멘트에 알려! 참고: 이 문서에서는 Promise 생성자와 이러한 개체의 메서드 및 속성에 대해 설명합니다. 약속이 작동하는 방식과 약속을 사용하는 방법에 대해 알아보려면 먼저 약속 사용법을 읽는 것이 좋습니다. 생성자는 주로 약속을 지원하지 않는 함수를 래핑하는 데 사용됩니다. 약속이 굉장하다는 사실이 당신을 설득하지 않는다면, 어쩌면 약속에 대한 대안이 될 것입니다. Promise.all, Promise.race 및 기타 정적 방법과 같이 다룰 수 없었던 다른 많은 것들이 있습니다. 약속의 오류를 처리하고, 몇 가지 일반적인 안티 패턴과 약속을하는 동안 주의해야 하는 gotchas.

이러한 항목에 대한 자세한 내용은 아래 문서를 참조할 수 있습니다.