Travis build: 901

This commit is contained in:
30secondsofcode
2018-12-12 22:06:03 +00:00
parent ee0d23d302
commit dbc56ed9f4
8 changed files with 50 additions and 23 deletions

View File

@ -121,7 +121,11 @@ console<span class="token punctuation">.</span><span class="token function">log<
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token function">freddyBound</span><span class="token punctuation">(</span><span class="token string">'hi'</span><span class="token punctuation">,</span> <span class="token string">'!'</span><span class="token punctuation">));</span> <span class="token comment">// 'hi fred!'</span>
</pre></div><div class="card code-card"><div class="corner intermediate"></div><div class="section card-content"><h4 id="chainasync">chainAsync</h4><p>Chains asynchronous functions.</p><p>Loop through an array of functions containing asynchronous events, calling <code>next</code> when each asynchronous event has completed.</p></div><div class="copy-button-container"><button class="copy-button" aria-label="Copy to clipboard"></button></div><pre class="section card-code language-js"><span class="token keyword">const</span> <span class="token function-variable function">chainAsync</span> <span class="token operator">=</span> fns <span class="token operator">=></span> <span class="token punctuation">{</span>
<span class="token keyword">let</span> curr <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token keyword">const</span> <span class="token function-variable function">next</span> <span class="token operator">=</span> <span class="token punctuation">()</span> <span class="token operator">=></span> fns<span class="token punctuation">[</span>curr<span class="token operator">++</span><span class="token punctuation">](</span>next<span class="token punctuation">);</span>
<span class="token keyword">const</span> last <span class="token operator">=</span> fns<span class="token punctuation">[</span>fns<span class="token punctuation">.</span>length <span class="token operator">-</span> <span class="token number">1</span><span class="token punctuation">];</span>
<span class="token keyword">const</span> <span class="token function-variable function">next</span> <span class="token operator">=</span> <span class="token punctuation">()</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
<span class="token keyword">const</span> fn <span class="token operator">=</span> fns<span class="token punctuation">[</span>curr<span class="token operator">++</span><span class="token punctuation">];</span>
fn <span class="token operator">===</span> last <span class="token operator">?</span> <span class="token function">fn</span><span class="token punctuation">() :</span> <span class="token function">fn</span><span class="token punctuation">(</span>next<span class="token punctuation">);
};</span>
<span class="token function">next</span><span class="token punctuation">();
};</span>
</pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token function">chainAsync</span><span class="token punctuation">([</span>
@ -130,7 +134,11 @@ console<span class="token punctuation">.</span><span class="token function">log<
<span class="token function">setTimeout</span><span class="token punctuation">(</span>next<span class="token punctuation">,</span> <span class="token number">1000</span><span class="token punctuation">);
},</span>
next <span class="token operator">=></span> <span class="token punctuation">{</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'1 second'</span><span class="token punctuation">);
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'1 second'</span><span class="token punctuation">);</span>
<span class="token function">setTimeout</span><span class="token punctuation">(</span>next<span class="token punctuation">,</span> <span class="token number">1000</span><span class="token punctuation">);
},
()</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'2 second'</span><span class="token punctuation">);
}
]);</span>
</pre></div><div class="card code-card"><div class="corner intermediate"></div><div class="section card-content"><h4 id="compose">compose</h4><p>Performs right-to-left function composition.</p><p>Use <code>Array.prototype.reduce()</code> to perform right-to-left function composition. The last (rightmost) function can accept one or more arguments; the remaining functions must be unary.</p></div><div class="copy-button-container"><button class="copy-button" aria-label="Copy to clipboard"></button></div><pre class="section card-code language-js"><span class="token keyword">const</span> <span class="token function-variable function">compose</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token operator">...</span>fns<span class="token punctuation">)</span> <span class="token operator">=></span> fns<span class="token punctuation">.</span><span class="token function">reduce</span><span class="token punctuation">((</span>f<span class="token punctuation">,</span> g<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">(</span><span class="token operator">...</span>args<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token function">f</span><span class="token punctuation">(</span><span class="token function">g</span><span class="token punctuation">(</span><span class="token operator">...</span>args<span class="token punctuation">)));</span>