heyujie
2021-06-07 8f8155aa4c83f7c2577ac123add550766b6a7ce3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
"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); })
    );
};