프로젝트

일반

사용자정보

통계
| 개정판:

root / HServer / 00.Server / 00.Program / node_modules / async / reflectAll.js

이력 | 보기 | 이력해설 | 다운로드 (2.68 KB)

1 39 HKM
'use strict';
2
3
Object.defineProperty(exports, "__esModule", {
4
    value: true
5
});
6
exports.default = reflectAll;
7
8
var _reflect = require('./reflect');
9
10
var _reflect2 = _interopRequireDefault(_reflect);
11
12
var _isArray = require('lodash/isArray');
13
14
var _isArray2 = _interopRequireDefault(_isArray);
15
16
var _arrayMap2 = require('lodash/_arrayMap');
17
18
var _arrayMap3 = _interopRequireDefault(_arrayMap2);
19
20
var _baseForOwn = require('lodash/_baseForOwn');
21
22
var _baseForOwn2 = _interopRequireDefault(_baseForOwn);
23
24
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
26
/**
27
 * A helper function that wraps an array or an object of functions with reflect.
28
 *
29
 * @name reflectAll
30
 * @static
31
 * @memberOf module:Utils
32
 * @method
33
 * @see [async.reflect]{@link module:Utils.reflect}
34
 * @category Util
35
 * @param {Array} tasks - The array of functions to wrap in `async.reflect`.
36
 * @returns {Array} Returns an array of functions, each function wrapped in
37
 * `async.reflect`
38
 * @example
39
 *
40
 * let tasks = [
41
 *     function(callback) {
42
 *         setTimeout(function() {
43
 *             callback(null, 'one');
44
 *         }, 200);
45
 *     },
46
 *     function(callback) {
47
 *         // do some more stuff but error ...
48
 *         callback(new Error('bad stuff happened'));
49
 *     },
50
 *     function(callback) {
51
 *         setTimeout(function() {
52
 *             callback(null, 'two');
53
 *         }, 100);
54
 *     }
55
 * ];
56
 *
57
 * async.parallel(async.reflectAll(tasks),
58
 * // optional callback
59
 * function(err, results) {
60
 *     // values
61
 *     // results[0].value = 'one'
62
 *     // results[1].error = Error('bad stuff happened')
63
 *     // results[2].value = 'two'
64
 * });
65
 *
66
 * // an example using an object instead of an array
67
 * let tasks = {
68
 *     one: function(callback) {
69
 *         setTimeout(function() {
70
 *             callback(null, 'one');
71
 *         }, 200);
72
 *     },
73
 *     two: function(callback) {
74
 *         callback('two');
75
 *     },
76
 *     three: function(callback) {
77
 *         setTimeout(function() {
78
 *             callback(null, 'three');
79
 *         }, 100);
80
 *     }
81
 * };
82
 *
83
 * async.parallel(async.reflectAll(tasks),
84
 * // optional callback
85
 * function(err, results) {
86
 *     // values
87
 *     // results.one.value = 'one'
88
 *     // results.two.error = 'two'
89
 *     // results.three.value = 'three'
90
 * });
91
 */
92
function reflectAll(tasks) {
93
    var results;
94
    if ((0, _isArray2.default)(tasks)) {
95
        results = (0, _arrayMap3.default)(tasks, _reflect2.default);
96
    } else {
97
        results = {};
98
        (0, _baseForOwn2.default)(tasks, function (task, key) {
99
            results[key] = _reflect2.default.call(this, task);
100
        });
101
    }
102
    return results;
103
}
104
module.exports = exports['default'];