root / HServer / 00.Server / 00.Program / node_modules / after / index.js
이력 | 보기 | 이력해설 | 다운로드 (685 Bytes)
1 | 39 | HKM | 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() {} |