1 | <!doctype html>
|
2 | <html>
|
3 |
|
4 | <head>
|
5 | <meta name="generator" content="JSDoc 3.6.2">
|
6 | <meta charset="utf-8">
|
7 | <title>keyu 2.0.0 » Module: concurrency</title>
|
8 | <link rel="stylesheet" href="https://brick.a.ssl.fastly.net/Karla:400,400i,700,700i" type="text/css">
|
9 | <link rel="stylesheet" href="https://brick.a.ssl.fastly.net/Noto+Serif:400,400i,700,700i" type="text/css">
|
10 | <link rel="stylesheet" href="https://brick.a.ssl.fastly.net/Inconsolata:500" type="text/css">
|
11 | <link href="css/baseline.css" rel="stylesheet">
|
12 | </head>
|
13 |
|
14 | <body onload="prettyPrint()">
|
15 | <nav id="jsdoc-navbar" role="navigation" class="jsdoc-navbar">
|
16 | <div id="jsdoc-navbar-container">
|
17 | <div id="jsdoc-navbar-content">
|
18 | <a href="index.html" class="jsdoc-navbar-package-name">keyu 2.<wbr>0.<wbr>0</a>
|
19 | </div>
|
20 | </div>
|
21 | </nav>
|
22 | <div id="jsdoc-body-container">
|
23 | <div id="jsdoc-content">
|
24 | <div id="jsdoc-content-container">
|
25 | <div id="jsdoc-main" role="main">
|
26 | <header class="page-header">
|
27 | <div class="symbol-detail-labels"><span class="label label-kind">module</span></div>
|
28 | <h1><small></small><span class="symbol-name">concurrency</span></h1>
|
29 | <p class="source-link">Source: <a href="concurrency_index.js.html">concurrency/<wbr>index.<wbr>js</a></p>
|
30 | <div class="symbol-description">
|
31 | </div>
|
32 | <dl class="dl-compact">
|
33 | </dl>
|
34 | </header>
|
35 | <section id="summary">
|
36 | <div class="summary-callout">
|
37 | <h2 class="summary-callout-heading">Methods</h2>
|
38 | <div class="summary-content">
|
39 | <div class="summary-column">
|
40 | <dl class="dl-summary-callout">
|
41 | <dt><a href="module-concurrency.html#~best">best(promises)</a></dt>
|
42 | <dd>
|
43 | </dd>
|
44 | </dl>
|
45 | </div>
|
46 | <div class="summary-column">
|
47 | <dl class="dl-summary-callout">
|
48 | <dt><a href="module-concurrency.html#~full">full(promises)</a></dt>
|
49 | <dd>
|
50 | </dd>
|
51 | </dl>
|
52 | </div>
|
53 | <div class="summary-column">
|
54 | </div>
|
55 | </div>
|
56 | </div>
|
57 | </section>
|
58 | <section>
|
59 | <h2>Methods</h2>
|
60 | <section>
|
61 | <div class="symbol-detail-labels"><span class="label label-inner">inner</span></div>
|
62 | <h3 id="~best"><span class="symbol-name">best</span><span class="signature"><span class="signature-params">(promises)</span> → <span class="signature-returns"> Promise</span></span></h3>
|
63 | <p>Given <strong>N promises</strong> will return <u>the fastest non-failed one</u>.
|
64 | This pattern can be useful some times to reduce latency.</p>
|
65 | <section>
|
66 | <h4>
|
67 | Example
|
68 | </h4>
|
69 | <div>
|
70 | <pre class="prettyprint"><code>await best([Promise.resolve(1),Promise.resolve(2)]) // -> 1 (assuming 1 is the first to resolve)
|
71 | await best([Promise.reject(1),Promise.resolve(2)]) // -> 2</code></pre>
|
72 | </div>
|
73 | </section>
|
74 | <section>
|
75 | <h4>Parameter</h4>
|
76 | <table class="jsdoc-details-table">
|
77 | <thead>
|
78 | <tr>
|
79 | <th>Name</th>
|
80 | <th>Type</th>
|
81 | <th>Optional</th>
|
82 | <th>Description</th>
|
83 | </tr>
|
84 | </thead>
|
85 | <tbody>
|
86 | <tr>
|
87 | <td>
|
88 | <p>promises</p>
|
89 | </td>
|
90 | <td>
|
91 | <p>Array(Promise)</p>
|
92 | </td>
|
93 | <td>
|
94 | <p> </p>
|
95 | </td>
|
96 | <td>
|
97 | <p>An array of all promises to be executed</p>
|
98 | </td>
|
99 | </tr>
|
100 | </tbody>
|
101 | </table>
|
102 | </section>
|
103 | <dl class="dl-compact">
|
104 | <dt>See also</dt>
|
105 | <dd>
|
106 | <p><a href="https://ieeexplore.ieee.org/document/7348681">When Do Redundant Requests Reduce Latency?</a></p>
|
107 | </dd>
|
108 | <dd>
|
109 | <p><a href="https://www.youtube.com/watch?v=f6kdp27TYZs">Rob-Pike</a></p>
|
110 | </dd>
|
111 | <dd>
|
112 | <p><a href="https://github.com/nerac/keyu/blob/master/test/concurrencyTest.js">concurrencyTest.js</a></p>
|
113 | </dd>
|
114 | <dt>Returns</dt>
|
115 | <dd>
|
116 | <p><code>Promise</code> </p>
|
117 | </dd>
|
118 | </dl>
|
119 | <div class="symbol-detail-labels"><span class="label label-inner">inner</span></div>
|
120 | <h3 id="~full"><span class="symbol-name">full</span><span class="signature"><span class="signature-params">(promises)</span> → <span class="signature-returns"> Array(Object)</span></span></h3>
|
121 | <p>A <strong>Promise.all</strong> that does not fails-fast.
|
122 | Given N promises will return all of them <u>independenly if they failed or not</u>.</p>
|
123 | <section>
|
124 | <h4>
|
125 | Example
|
126 | </h4>
|
127 | <div>
|
128 | <pre class="prettyprint"><code>await full([Promise.resolve(1), Promise.reject(2), Promise.resolve(3)])
|
129 | // [ { value: 1 }, { error: 2 }, { value: 3 } ]</code></pre>
|
130 | </div>
|
131 | </section>
|
132 | <section>
|
133 | <h4>Parameter</h4>
|
134 | <table class="jsdoc-details-table">
|
135 | <thead>
|
136 | <tr>
|
137 | <th>Name</th>
|
138 | <th>Type</th>
|
139 | <th>Optional</th>
|
140 | <th>Description</th>
|
141 | </tr>
|
142 | </thead>
|
143 | <tbody>
|
144 | <tr>
|
145 | <td>
|
146 | <p>promises</p>
|
147 | </td>
|
148 | <td>
|
149 | <p>Array(Promise)</p>
|
150 | </td>
|
151 | <td>
|
152 | <p> </p>
|
153 | </td>
|
154 | <td>
|
155 | <p>An array of all promises to be executed</p>
|
156 | </td>
|
157 | </tr>
|
158 | </tbody>
|
159 | </table>
|
160 | </section>
|
161 | <dl class="dl-compact">
|
162 | <dt>See also</dt>
|
163 | <dd>
|
164 | <p><a href="https://en.wikipedia.org/wiki/Fail-fast">Fail-fast</a></p>
|
165 | </dd>
|
166 | <dd>
|
167 | <p><a href="https://www.youtube.com/watch?v=f6kdp27TYZs">Rob-Pike</a></p>
|
168 | </dd>
|
169 | <dd>
|
170 | <p><a href="https://github.com/nerac/keyu/blob/master/test/concurrencyTest.js">concurrencyTest.js</a></p>
|
171 | </dd>
|
172 | <dd>
|
173 | <p><a href="https://github.com/nerac/keyu/blob/master/test/concurrencyTest.js">concurrencyTest.js</a></p>
|
174 | </dd>
|
175 | <dt>Returns</dt>
|
176 | <dd>
|
177 | <p><code>Array(Object)</code> </p>
|
178 | </dd>
|
179 | </dl>
|
180 | </section>
|
181 | </section>
|
182 | </div>
|
183 | </div>
|
184 | <nav id="jsdoc-toc-nav" role="navigation"></nav>
|
185 | </div>
|
186 | </div>
|
187 | <footer id="jsdoc-footer" class="jsdoc-footer">
|
188 | <div id="jsdoc-footer-container">
|
189 | <p>
|
190 | Generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc</a> 3.6.2 on June 17, 2019.
|
191 | </p>
|
192 | </div>
|
193 | </footer>
|
194 | <script src="scripts/jquery.min.js"></script>
|
195 | <script src="scripts/jquery.cookie.js"></script>
|
196 | <script src="scripts/tree.jquery.js"></script>
|
197 | <script src="scripts/prettify.js"></script>
|
198 | <script src="scripts/jsdoc-toc.js"></script>
|
199 | <script src="scripts/linenumber.js"></script>
|
200 | <script src="scripts/scrollanchor.js"></script>
|
201 | </body>
|
202 |
|
203 | </html> |
\ | No newline at end of file |