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
| }
|
|