JavaScript의 비동기 메커니즘으로 인해 일반적인 문제는 콜백 피라미드입니다.
loadImg('a.jpg', function() { loadImg('b.jpg', function() { loadImg('c.jpg', function() { console.log('all done!'); }); }); });
Promise 말 그대로 약속입니다. A가 B를 호출하고 B가 A에게 약속을 반환하면 A는 다음과 같이 계획을 작성할 수 있습니다. B가 나에게 결과를 반환하면 A는 S1 계획을 실행합니다. 그렇지 않으면 B가 A에게 원하는 결과를 제공하지 않습니다. 이유, 그러면 A는 비상 계획 S2를 실행합니다. 이 경우 모든 잠재적 위험은 A의 통제 내에 있습니다. , 질문자가 예상치 못한 응답을 할 때마다 다른 처리 메커니즘이 사용됩니다. Promise 사양에서는 이를 요구하지 않지만 처리를 전혀 수행하지 않거나(두 번째 then 매개변수를 전달하지 않고) 균일하게 처리할 수도 있습니다.
Promise/A+ 사양
, 거부됨(거부됨) Promise의 상태는 다음과 같을 수 있습니다. "대기 중"에서 "완료" 또는 "거부됨"으로 변경되었으며 되돌릴 수 없습니다.
Promise는 then 메소드
(then이 Promise의 핵심입니다)Then 메서드는 두 개의 매개변수를 받습니다. 첫 번째 매개변수는 성공할 때의 콜백이고, 다른 하나는 실패할 때의 콜백입니다. 그런 다음 전달된 또 다른 약속을 받아들일 수 있고, "그때처럼" 개체나 메서드도 받아들일 수 있습니다. ", 이것이 가능한 개체입니다
Standard Promise
오늘날 인기 있는 대부분의 주요 js 라이브러리는 dojo, jQuery, Zepto, when.js, Q 등과 같이 다양한 수준으로 Promise를 구현하지만 대부분은 Deferred입니다
Promise의 구현이 아무리 복잡하더라도 사용법이 매우 간단하고, 정리된 코드가 매우 명확하며, 더 이상 콜백으로 인해 어려움을 겪을 필요가 없다는 것을 알 수 있습니다.
JS Tutorial
"
위 내용은 ES6의 약속에 대해 배우기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!