ES6 Promise 확장 항상 메소드 인스턴스에 대한 자세한 설명

小云云
풀어 주다: 2018-01-31 13:28:59
원래의
2166명이 탐색했습니다.

이 글에서는 주로 ES6 Promise 확장의 Always 방식을 소개합니다. 편집자가 꽤 좋다고 생각해서 지금 공유하고 참고용으로 올려보겠습니다. 편집자를 따라가서 모두에게 도움이 되기를 바랍니다.

ES6에는 성공 시 처리되고 실패 시 catch되는 Promise 개체가 추가되었습니다. 그러나 때로는 로드 숨기기, 로그 기록 등 성공 여부에 관계없이 작업을 수행해야 합니다. 브라우저 측 Ajax 요청을 예로 들어보겠습니다. 우리는 axios(Promise 기반)를 사용합니다.


axios.get("/").then(()=>{
 //处理逻辑
 ...
 console.log("请求结束")
 hideLoading();
}).catch(()=>{
 console.log("请求结束")
 hideLoading();
})
로그인 후 복사

이러한 코드는 매우 중복됩니다. 이때마다 jQuery가 조금 그리워집니다.


$.get("/").done(()=>{
 //处理逻辑
}).always(()=>{
 console.log("请求结束")
 hideLoading();
})
로그인 후 복사

es6-promise-always는 ES6 기능의 확장으로 항상 지원하고 노드와 브라우저를 모두 지원합니다.

사용

1.


npm install es6-promise-always --save
로그인 후 복사

설치 2.


require("es6-promise-always")
axios.get("/").then(()=>{
 //处理逻辑
}).always(()=>{
 console.log("请求结束")
 hideLoading();
})
로그인 후 복사

always(data, error)

  • data:solve를 사용하여 데이터 소개.

  • 오류: 데이터를 거부합니다.

Tips

이로 인해 프로그램이 두꺼워질 수 있으니 걱정하지 마세요! es6-promise-always는 매우 작습니다. Always를 처음 구현하기 시작했을 때, 잘못된 방향으로 가고, 길을 잃었다는 것을 알게 되었습니다. Github 주소 : https://github.com/wendux/es6-promise-always

관련 추천 :

ES6 Promise 간략 소개

위 내용은 ES6 Promise 확장 항상 메소드 인스턴스에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿