123456789101112131415161718192021222324 |
- "use strict";
- var ensurePlainFunction = require("../../../object/ensure-plain-function")
- , isThenable = require("../../../object/is-thenable")
- , ensureThenable = require("../../../object/ensure-thenable");
- 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; });
- }
- );
- };
|