333
schangxiang@126.com
2025-09-19 18966e02fb573c7e2bb0c6426ed792b38b910940
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
var co = require('co')
 
exports = module.exports = deferImmediate
exports.defer =
exports.immediate =
exports.setImmediate = deferImmediate
 
function createCallback(ctx, gen, cb) {
  return function () {
    cb = cb || error
    co.call(ctx, gen).then(function () {
      cb()
    }, cb)
  }
}
 
function deferImmediate(gen, cb) {
  return setImmediate(createCallback(this, gen, cb))
}
 
exports.nextTick = function deferNextTick(gen, cb) {
  return process.nextTick(createCallback(this, gen, cb))
}
 
exports.timeout =
exports.setTimeout = function deferTimeout(gen, timeout, cb) {
  return setTimeout(createCallback(this, gen, cb), timeout)
}
 
exports.interval =
exports.setInterval = function deferInterval(gen, timeout, cb) {
  return setInterval(createCallback(this, gen, cb), timeout)
}
 
function error(err) {
  if (err) throw err
}