Programing

기본 ES6 약속에서 Bluebird Promise.finally에 해당하는 것은 무엇입니까?

crosscheck 2020. 6. 4. 18:59
반응형

기본 ES6 약속에서 Bluebird Promise.finally에 해당하는 것은 무엇입니까? [복제]


이 질문에는 이미 답변이 있습니다.

Bluebird는 finally약속 체인에서 발생하는 모든 것을 호출 하는 방법을 제공합니다 . 리소스를 잠금 해제하거나 로더를 숨기는 등 청소 목적으로 매우 편리하다는 것을 알았습니다.

ES6 기본 약속에 해당하는 것이 있습니까?


2018 년 2 월 7 일 기준

크롬 63+, 파이어 폭스 58+, 오페라 50 + 지원 Promise.finally.

Node.js 8.1.4+ (V8 5.8+)에서는이 기능을 플래그 뒤에 사용할 수 있습니다 --harmony-promise-finally.

Promise.prototype.finally ECMAScript를 제안은 현재 3 단계 TC39 과정.

그 동안 모든 브라우저에서 promise.finally 기능을 갖습니다. 항상 콜백을 호출하기 위해 추가 then()후에 추가 할 수 있습니다catch() .

예:

myES6Promise.then(() => console.log('Resolved'))
            .catch(() => console.log('Failed'))
            .then(() => console.log('Always run this'));

JSFiddle 데모 : https://jsfiddle.net/9frfjcsg/

또는 finally()방법 을 포함하도록 프로토 타입을 확장 할 수 있습니다 (권장하지 않음).

Promise.prototype.finally = function(cb) {
    const res = () => this;
    const fin = () => Promise.resolve(cb()).then(res);
    return this.then(fin, fin);
};

JSFiddle 데모 : https://jsfiddle.net/c67a6ss0/1/

도있다 Promise.prototype.finally 심 라이브러리.

참고 URL : https://stackoverflow.com/questions/35999072/what-is-the-equivalent-of-bluebird-promise-finally-in-native-es6-promises

반응형