heyujie
2021-05-20 6ebdefb4a5b2be82a8c452c0bb4624f3d85a17b7
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); })
    );
};