root / HServer / 00.Server / 00.Program / node_modules / after / index.js
이력 | 보기 | 이력해설 | 다운로드 (685 Bytes)
1 |
module.exports = after |
---|---|
2 |
|
3 |
function after(count, callback, err_cb) { |
4 |
var bail = false |
5 |
err_cb = err_cb || noop |
6 |
proxy.count = count |
7 |
|
8 |
return (count === 0) ? callback() : proxy |
9 |
|
10 |
function proxy(err, result) { |
11 |
if (proxy.count <= 0) { |
12 |
throw new Error('after called too many times') |
13 |
} |
14 |
--proxy.count |
15 |
|
16 |
// after first error, rest are passed to err_cb
|
17 |
if (err) {
|
18 |
bail = true
|
19 |
callback(err) |
20 |
// future error callbacks will go to error handler
|
21 |
callback = err_cb |
22 |
} else if (proxy.count === 0 && !bail) { |
23 |
callback(null, result)
|
24 |
} |
25 |
} |
26 |
} |
27 |
|
28 |
function noop() {} |