Archived
1
0
This repository has been archived on 2023-05-15. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
home-page/node_modules/ext/thenable_/finally.js
Sean Edmunds 0584430b5c First commit
2021-12-13 17:00:40 -06:00

25 lines
673 B
JavaScript

"use strict";
var ensurePlainFunction = require("type/plain-function/ensure")
, isThenable = require("type/thenable/is")
, ensureThenable = require("type/thenable/ensure");
var resolveCallback = function (callback, next) {
var callbackResult = callback();
if (!isThenable(callbackResult)) return next();
return callbackResult.then(next);
};
module.exports = function (callback) {
ensureThenable(this);
ensurePlainFunction(callback);
return this.then(
function (result) {
return resolveCallback(callback, function () { return result; });
},
function (error) {
return resolveCallback(callback, function () { throw error; });
}
);
};