schangxiang@126.com
2025-09-18 49a51c068d62084bc4c3e77c4be94a20de556c4a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
"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);
        })
    );
};