UNPKG

8.21 kBHTMLView Raw
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 &raquo; 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>&nbsp;&rarr; <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)]) // -&gt; 1 (assuming 1 is the first to resolve)
71await best([Promise.reject(1),Promise.resolve(2)]) // -&gt; 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>&nbsp;</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>&nbsp;&rarr; <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>&nbsp;</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