20 lines
542 B
JavaScript
20 lines
542 B
JavaScript
"use strict";
|
|
|
|
var ensurePlainFunction = require("../../object/ensure-plain-function")
|
|
, ensureThenable = require("../../object/ensure-thenable")
|
|
, microtaskDelay = require("../../function/#/microtask-delay");
|
|
|
|
module.exports = function (callback) {
|
|
ensureThenable(this);
|
|
ensurePlainFunction(callback);
|
|
// Rely on microtaskDelay to escape eventual error swallowing
|
|
this.then(
|
|
microtaskDelay.call(function (value) {
|
|
callback(null, value);
|
|
}),
|
|
microtaskDelay.call(function (reason) {
|
|
callback(reason);
|
|
})
|
|
);
|
|
};
|