ES Proposal spec-compliant shim for Promise.prototype.finally. Invoke its "shim" method to shim Promise.prototype.finally
if it is unavailable or noncompliant. Note: a global Promise
must already exist: the es6-shim is recommended.
This package implements the es-shim API interface. It works in an ES3-supported environment that has Promise
available globally, and complies with the proposed spec.
Most common usage:
var assert = require('assert'); var promiseFinally = require('promise.prototype.finally'); var resolved = Promise.resolve(42); var rejected = Promise.reject(-1); promiseFinally(resolved, function () { assert.equal(arguments.length, 0); return Promise.resolve(true); }).then(function (x) { assert.equal(x, 42); }); promiseFinally(rejected, function () { assert.equal(arguments.length, 0); }).catch(function (e) { assert.equal(e, -1); }); promiseFinally(rejected, function () { assert.equal(arguments.length, 0); throw false; }).catch(function (e) { assert.equal(e, false); }); promiseFinally.shim(); // will be a no-op if not needed resolved.finally(function () { assert.equal(arguments.length, 0); return Promise.resolve(true); }).then(function (x) { assert.equal(x, 42); }); rejected.finally(function () { assert.equal(arguments.length, 0); }).catch(function (e) { assert.equal(e, -1); }); rejected.finally(function () { assert.equal(arguments.length, 0); throw false; }).catch(function (e) { assert.equal(e, false); });Tests
Simply clone the repo, npm install
, and run npm test
Huge thanks go out to @matthew-andrews, who provided the npm package name for v2 of this module. v1 is both in the original repo and preserved in a branch
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4