<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;color:rgb(0,0,0)">yet smaller, as Promise.resolve() was totally redundant here...</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;color:rgb(0,0,0)"><div style="font-family:Menlo,Monaco,"Courier New",monospace;font-size:12px;line-height:18px;white-space:pre"><div><span style="color:rgb(0,128,0)">// NOTE async {} = asynchronous scope (it groups parallel awaits => `await||`)</span></div><div><span style="color:rgb(0,128,0)">// NOTE p? = function call that returns a promise (? = just and index)</span></div><br><div><span style="color:rgb(0,16,128)">async</span> {</div><div>    <span style="color:rgb(0,0,255)">const</span> <span style="color:rgb(0,16,128)">x1</span> = <span style="color:rgb(175,0,219)">await</span> || <span style="color:rgb(121,94,38)">p1</span>()</div><div>    <span style="color:rgb(0,0,255)">const</span> <span style="color:rgb(0,16,128)">x2</span> = <span style="color:rgb(175,0,219)">await</span> <span style="color:rgb(121,94,38)">p2</span>(<span style="color:rgb(0,16,128)">x1</span>)</div><div>    <span style="color:rgb(0,0,255)">const</span> <span style="color:rgb(0,16,128)">x3</span> = <span style="color:rgb(175,0,219)">await</span> || <span style="color:rgb(121,94,38)">p3</span>()</div><div>    <span style="color:rgb(0,0,255)">const</span> <span style="color:rgb(0,16,128)">x10</span> = <span style="color:rgb(175,0,219)">await</span> <span style="color:rgb(121,94,38)">p10</span>(<span style="color:rgb(0,16,128)">x2</span>, <span style="color:rgb(0,16,128)">x3</span>)</div><br><div>    <span style="color:rgb(0,0,255)">let</span> <span style="color:rgb(0,16,128)">x4</span>, <span style="color:rgb(0,16,128)">x5</span>, <span style="color:rgb(0,16,128)">x6</span></div><br><div>    <span style="color:rgb(0,16,128)">async</span> {</div><div>        <span style="color:rgb(0,16,128)">x4</span> = <span style="color:rgb(175,0,219)">await</span> || <span style="color:rgb(121,94,38)">p4</span>(<span style="color:rgb(0,16,128)">x1</span>, <span style="color:rgb(0,16,128)">x2</span>)</div><div>        <span style="color:rgb(0,16,128)">x5</span> = <span style="color:rgb(175,0,219)">await</span> || <span style="color:rgb(121,94,38)">p5</span>(<span style="color:rgb(0,16,128)">x2</span>, <span style="color:rgb(0,16,128)">x3</span>)</div><div>        <span style="color:rgb(0,16,128)">x6</span> = <span style="color:rgb(175,0,219)">await</span> <span style="color:rgb(121,94,38)">p6</span>(<span style="color:rgb(0,16,128)">x4</span>, <span style="color:rgb(0,16,128)">x5</span>, <span style="color:rgb(0,16,128)">x10</span>)</div><div>    }</div><br><div>    <span style="color:rgb(0,0,255)">let</span> <span style="color:rgb(0,16,128)">x7</span>, <span style="color:rgb(0,16,128)">x8</span>, <span style="color:rgb(0,16,128)">x9</span></div><br><div>    <span style="color:rgb(0,16,128)">async</span> {</div><div>        <span style="color:rgb(0,16,128)">x7</span> = <span style="color:rgb(175,0,219)">await</span> || <span style="color:rgb(121,94,38)">p7</span>(<span style="color:rgb(0,16,128)">x4</span>, <span style="color:rgb(0,16,128)">x6</span>)</div><div>        <span style="color:rgb(0,16,128)">x8</span> = <span style="color:rgb(175,0,219)">await</span> <span style="color:rgb(121,94,38)">p8</span>(<span style="color:rgb(0,16,128)">x6</span>, <span style="color:rgb(0,16,128)">x7</span>)</div><div>        <span style="color:rgb(0,16,128)">x9</span> = <span style="color:rgb(175,0,219)">await</span> || <span style="color:rgb(121,94,38)">p9</span>(<span style="color:rgb(0,16,128)">x5</span>, <span style="color:rgb(0,16,128)">x6</span>)</div><div>    }</div><br><div>    <span style="color:rgb(175,0,219)">await</span> <span style="color:rgb(121,94,38)">p11</span>(<span style="color:rgb(0,16,128)">x8</span>, <span style="color:rgb(0,16,128)">x9</span>)</div><div>}</div><br><div><span style="color:rgb(38,127,153)">Promise</span>.<span style="color:rgb(121,94,38)">all</span>([<span style="color:rgb(121,94,38)">p1</span>(), <span style="color:rgb(121,94,38)">p3</span>()])</div><div>    .<span style="color:rgb(121,94,38)">then</span>((<span style="color:rgb(0,16,128)">x1</span>, <span style="color:rgb(0,16,128)">x3</span>) <span style="color:rgb(0,0,255)">=></span></div><div>        <span style="color:rgb(121,94,38)">p2</span>(<span style="color:rgb(0,16,128)">x1</span>)</div><div>            .<span style="color:rgb(121,94,38)">then</span>(<span style="color:rgb(0,16,128)">x2</span> <span style="color:rgb(0,0,255)">=></span></div><div>                <span style="color:rgb(121,94,38)">p10</span>(<span style="color:rgb(0,16,128)">x2</span>, <span style="color:rgb(0,16,128)">x3</span>)</div><div>                    .<span style="color:rgb(121,94,38)">then</span>(<span style="color:rgb(0,16,128)">x10</span> <span style="color:rgb(0,0,255)">=></span> {</div><div>                        <span style="color:rgb(0,0,255)">let</span> <span style="color:rgb(0,16,128)">x4</span>, <span style="color:rgb(0,16,128)">x5</span>, <span style="color:rgb(0,16,128)">x6</span></div><br><div>                        <span style="color:rgb(175,0,219)">return</span> <span style="color:rgb(38,127,153)">Promise</span>.<span style="color:rgb(121,94,38)">all</span>([<span style="color:rgb(121,94,38)">p4</span>(<span style="color:rgb(0,16,128)">x1</span>, <span style="color:rgb(0,16,128)">x2</span>), <span style="color:rgb(121,94,38)">p5</span>(<span style="color:rgb(0,16,128)">x2</span>, <span style="color:rgb(0,16,128)">x3</span>)])</div><div>                            .<span style="color:rgb(121,94,38)">then</span>(<span style="color:rgb(0,16,128)">results</span> <span style="color:rgb(0,0,255)">=></span> [<span style="color:rgb(0,16,128)">x4</span>, <span style="color:rgb(0,16,128)">x5</span>] = <span style="color:rgb(0,16,128)">results</span>)</div><div>                            .<span style="color:rgb(121,94,38)">then</span>(() <span style="color:rgb(0,0,255)">=></span> <span style="color:rgb(121,94,38)">p6</span>(<span style="color:rgb(0,16,128)">x4</span>, <span style="color:rgb(0,16,128)">x5</span>, <span style="color:rgb(0,16,128)">x10</span>))</div><div>                            .<span style="color:rgb(121,94,38)">then</span>(<span style="color:rgb(0,16,128)">_x6</span> <span style="color:rgb(0,0,255)">=></span> <span style="color:rgb(0,16,128)">x6</span> = <span style="color:rgb(0,16,128)">_x6</span>)</div><div>                            .<span style="color:rgb(121,94,38)">then</span>(() <span style="color:rgb(0,0,255)">=></span> {</div><div>                                <span style="color:rgb(0,0,255)">let</span> <span style="color:rgb(0,16,128)">x7</span>, <span style="color:rgb(0,16,128)">x8</span>, <span style="color:rgb(0,16,128)">x9</span></div><div>        </div><div>                                <span style="color:rgb(175,0,219)">return</span> <span style="color:rgb(38,127,153)">Promise</span>.<span style="color:rgb(121,94,38)">all</span>([<span style="color:rgb(121,94,38)">p7</span>(<span style="color:rgb(0,16,128)">x4</span>, <span style="color:rgb(0,16,128)">x6</span>), <span style="color:rgb(121,94,38)">p9</span>(<span style="color:rgb(0,16,128)">x5</span>, <span style="color:rgb(0,16,128)">x6</span>)])</div><div>                                    .<span style="color:rgb(121,94,38)">then</span>(<span style="color:rgb(0,16,128)">results</span> <span style="color:rgb(0,0,255)">=></span> [<span style="color:rgb(0,16,128)">x7</span>, <span style="color:rgb(0,16,128)">x9</span>] = <span style="color:rgb(0,16,128)">results</span>)</div><div>                                    .<span style="color:rgb(121,94,38)">then</span>(() <span style="color:rgb(0,0,255)">=></span> <span style="color:rgb(121,94,38)">p8</span>(<span style="color:rgb(0,16,128)">x6</span>, <span style="color:rgb(0,16,128)">x7</span>))</div><div>                                    .<span style="color:rgb(121,94,38)">then</span>(<span style="color:rgb(0,16,128)">_x8</span> <span style="color:rgb(0,0,255)">=></span> <span style="color:rgb(0,16,128)">x8</span> = <span style="color:rgb(0,16,128)">_x8</span>)</div><div>                                    .<span style="color:rgb(121,94,38)">then</span>(() <span style="color:rgb(0,0,255)">=></span> <span style="color:rgb(121,94,38)">p11</span>(<span style="color:rgb(0,16,128)">x8</span>, <span style="color:rgb(0,16,128)">x9</span>))</div><div>                            })</div><div>                    })</div><div>            )</div><div>    )</div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Nov 25, 2019 at 5:57 PM manuelbarzi <<a href="mailto:manuelbarzi@gmail.com">manuelbarzi@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;color:rgb(0,0,0)">a few little corrections...</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;color:rgb(0,0,0)"><div style="font-family:Menlo,Monaco,"Courier New",monospace;font-size:12px;line-height:18px;white-space:pre-wrap"><div><span style="color:rgb(0,128,0)">// NOTE async {} = asynchronous scope (it groups parallel awaits => `await||`)</span></div><div><span style="color:rgb(0,128,0)">// NOTE p? = function call that returns a promise (? = just and index)</span></div><br><div><span style="color:rgb(0,16,128)">async</span> {</div><div>    <span style="color:rgb(0,0,255)">const</span> <span style="color:rgb(0,16,128)">x1</span> = <span style="color:rgb(175,0,219)">await</span> || <span style="color:rgb(121,94,38)">p1</span>()</div><div>    <span style="color:rgb(0,0,255)">const</span> <span style="color:rgb(0,16,128)">x2</span> = <span style="color:rgb(175,0,219)">await</span> <span style="color:rgb(121,94,38)">p2</span>(<span style="color:rgb(0,16,128)">x1</span>)</div><div>    <span style="color:rgb(0,0,255)">const</span> <span style="color:rgb(0,16,128)">x3</span> = <span style="color:rgb(175,0,219)">await</span> || <span style="color:rgb(121,94,38)">p3</span>()</div><div>    <span style="color:rgb(0,0,255)">const</span> <span style="color:rgb(0,16,128)">x10</span> = <span style="color:rgb(175,0,219)">await</span> <span style="color:rgb(121,94,38)">p10</span>(<span style="color:rgb(0,16,128)">x2</span>, <span style="color:rgb(0,16,128)">x3</span>)</div><br><div>    <span style="color:rgb(0,0,255)">let</span> <span style="color:rgb(0,16,128)">x4</span>, <span style="color:rgb(0,16,128)">x5</span>, <span style="color:rgb(0,16,128)">x6</span></div><br><div>    <span style="color:rgb(0,16,128)">async</span> {</div><div>        <span style="color:rgb(0,16,128)">x4</span> = <span style="color:rgb(175,0,219)">await</span> || <span style="color:rgb(121,94,38)">p4</span>(<span style="color:rgb(0,16,128)">x1</span>, <span style="color:rgb(0,16,128)">x2</span>)</div><div>        <span style="color:rgb(0,16,128)">x5</span> = <span style="color:rgb(175,0,219)">await</span> || <span style="color:rgb(121,94,38)">p5</span>(<span style="color:rgb(0,16,128)">x2</span>, <span style="color:rgb(0,16,128)">x3</span>)</div><div>        <span style="color:rgb(0,16,128)">x6</span> = <span style="color:rgb(175,0,219)">await</span> <span style="color:rgb(121,94,38)">p6</span>(<span style="color:rgb(0,16,128)">x4</span>, <span style="color:rgb(0,16,128)">x5</span>, <span style="color:rgb(0,16,128)">x10</span>)</div><div>    }</div><br><div>    <span style="color:rgb(0,0,255)">let</span> <span style="color:rgb(0,16,128)">x7</span>, <span style="color:rgb(0,16,128)">x8</span>, <span style="color:rgb(0,16,128)">x9</span></div><br><div>    <span style="color:rgb(0,16,128)">async</span> {</div><div>        <span style="color:rgb(0,16,128)">x7</span> = <span style="color:rgb(175,0,219)">await</span> || <span style="color:rgb(121,94,38)">p7</span>(<span style="color:rgb(0,16,128)">x4</span>, <span style="color:rgb(0,16,128)">x6</span>)</div><div>        <span style="color:rgb(0,16,128)">x8</span> = <span style="color:rgb(175,0,219)">await</span> <span style="color:rgb(121,94,38)">p8</span>(<span style="color:rgb(0,16,128)">x6</span>, <span style="color:rgb(0,16,128)">x7</span>)</div><div>        <span style="color:rgb(0,16,128)">x9</span> = <span style="color:rgb(175,0,219)">await</span> || <span style="color:rgb(121,94,38)">p9</span>(<span style="color:rgb(0,16,128)">x5</span>, <span style="color:rgb(0,16,128)">x6</span>)</div><div>    }</div><br><div>    <span style="color:rgb(175,0,219)">await</span> <span style="color:rgb(121,94,38)">p11</span>(<span style="color:rgb(0,16,128)">x8</span>, <span style="color:rgb(0,16,128)">x9</span>)</div><div>}</div><br><div><span style="color:rgb(38,127,153)">Promise</span>.<span style="color:rgb(121,94,38)">resolve</span>()</div><div>    .<span style="color:rgb(121,94,38)">then</span>(() <span style="color:rgb(0,0,255)">=></span> <span style="color:rgb(38,127,153)">Promise</span>.<span style="color:rgb(121,94,38)">all</span>([<span style="color:rgb(121,94,38)">p1</span>(), <span style="color:rgb(121,94,38)">p3</span>()]))</div><div>    .<span style="color:rgb(121,94,38)">then</span>((<span style="color:rgb(0,16,128)">x1</span>, <span style="color:rgb(0,16,128)">x3</span>) <span style="color:rgb(0,0,255)">=></span></div><div>        <span style="color:rgb(121,94,38)">p2</span>(<span style="color:rgb(0,16,128)">x1</span>)</div><div>            .<span style="color:rgb(121,94,38)">then</span>(<span style="color:rgb(0,16,128)">x2</span> <span style="color:rgb(0,0,255)">=></span></div><div>                <span style="color:rgb(121,94,38)">p10</span>(<span style="color:rgb(0,16,128)">x2</span>, <span style="color:rgb(0,16,128)">x3</span>)</div><div>                    .<span style="color:rgb(121,94,38)">then</span>(<span style="color:rgb(0,16,128)">x10</span> <span style="color:rgb(0,0,255)">=></span> {</div><div>                        <span style="color:rgb(0,0,255)">let</span> <span style="color:rgb(0,16,128)">x4</span>, <span style="color:rgb(0,16,128)">x5</span>, <span style="color:rgb(0,16,128)">x6</span></div><br><div>                        <span style="color:rgb(175,0,219)">return</span> <span style="color:rgb(38,127,153)">Promise</span>.<span style="color:rgb(121,94,38)">resolve</span>()</div><div>                            .<span style="color:rgb(121,94,38)">then</span>(() <span style="color:rgb(0,0,255)">=></span> <span style="color:rgb(38,127,153)">Promise</span>.<span style="color:rgb(121,94,38)">all</span>([<span style="color:rgb(121,94,38)">p4</span>(<span style="color:rgb(0,16,128)">x1</span>, <span style="color:rgb(0,16,128)">x2</span>), <span style="color:rgb(121,94,38)">p5</span>(<span style="color:rgb(0,16,128)">x2</span>, <span style="color:rgb(0,16,128)">x3</span>)]))</div><div>                            .<span style="color:rgb(121,94,38)">then</span>(<span style="color:rgb(0,16,128)">results</span> <span style="color:rgb(0,0,255)">=></span> [<span style="color:rgb(0,16,128)">x4</span>, <span style="color:rgb(0,16,128)">x5</span>] = <span style="color:rgb(0,16,128)">results</span>)</div><div>                            .<span style="color:rgb(121,94,38)">then</span>(() <span style="color:rgb(0,0,255)">=></span> <span style="color:rgb(121,94,38)">p6</span>(<span style="color:rgb(0,16,128)">x4</span>, <span style="color:rgb(0,16,128)">x5</span>, <span style="color:rgb(0,16,128)">x10</span>))</div><div>                            .<span style="color:rgb(121,94,38)">then</span>(<span style="color:rgb(0,16,128)">_x6</span> <span style="color:rgb(0,0,255)">=></span> <span style="color:rgb(0,16,128)">x6</span> = <span style="color:rgb(0,16,128)">_x6</span>)</div><div>                            .<span style="color:rgb(121,94,38)">then</span>(() <span style="color:rgb(0,0,255)">=></span> {</div><div>                                <span style="color:rgb(0,0,255)">let</span> <span style="color:rgb(0,16,128)">x7</span>, <span style="color:rgb(0,16,128)">x8</span>, <span style="color:rgb(0,16,128)">x9</span></div><div>        </div><div>                                <span style="color:rgb(175,0,219)">return</span> <span style="color:rgb(38,127,153)">Promise</span>.<span style="color:rgb(121,94,38)">resolve</span>()</div><div>                                    .<span style="color:rgb(121,94,38)">then</span>(() <span style="color:rgb(0,0,255)">=></span> <span style="color:rgb(38,127,153)">Promise</span>.<span style="color:rgb(121,94,38)">all</span>([<span style="color:rgb(121,94,38)">p7</span>(<span style="color:rgb(0,16,128)">x4</span>, <span style="color:rgb(0,16,128)">x6</span>), <span style="color:rgb(121,94,38)">p9</span>(<span style="color:rgb(0,16,128)">x5</span>, <span style="color:rgb(0,16,128)">x6</span>)]))</div><div>                                    .<span style="color:rgb(121,94,38)">then</span>(<span style="color:rgb(0,16,128)">results</span> <span style="color:rgb(0,0,255)">=></span> [<span style="color:rgb(0,16,128)">x7</span>, <span style="color:rgb(0,16,128)">x9</span>] = <span style="color:rgb(0,16,128)">results</span>)</div><div>                                    .<span style="color:rgb(121,94,38)">then</span>(() <span style="color:rgb(0,0,255)">=></span> <span style="color:rgb(121,94,38)">p8</span>(<span style="color:rgb(0,16,128)">x6</span>, <span style="color:rgb(0,16,128)">x7</span>))</div><div>                                    .<span style="color:rgb(121,94,38)">then</span>(<span style="color:rgb(0,16,128)">_x8</span> <span style="color:rgb(0,0,255)">=></span> <span style="color:rgb(0,16,128)">x8</span> = <span style="color:rgb(0,16,128)">_x8</span>)</div><div>                                    .<span style="color:rgb(121,94,38)">then</span>(() <span style="color:rgb(0,0,255)">=></span> <span style="color:rgb(121,94,38)">p11</span>(<span style="color:rgb(0,16,128)">x8</span>, <span style="color:rgb(0,16,128)">x9</span>))</div><div>                            })</div><div>                    })</div><div>            )</div><div>    )</div><br><br><br></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Nov 25, 2019 at 5:41 PM manuelbarzi <<a href="mailto:manuelbarzi@gmail.com" target="_blank">manuelbarzi@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hi Manuel! Would you mind explaining the added value of your proposal? I am only seeing it being more verbose, but I've not found any added functionality or benefit from it</div></div></blockquote><div><br></div><div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;color:rgb(0,0,0)">the proposal combines <span style="font-family:Arial,Helvetica,sans-serif;color:rgb(34,34,34)">parallel and series </span>async / await and could resolve complex trees, like the following example:</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;color:rgb(0,0,0)">```</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;color:rgb(0,0,0)"><div style="font-family:Menlo,Monaco,"Courier New",monospace;font-size:12px;line-height:18px;white-space:pre-wrap"><div><span style="color:rgb(0,128,0)">// NOTE async {} = asynchronous scope (it groups parallel awaits => `await||`)</span></div><div><span style="color:rgb(0,128,0)">// NOTE p? = function call that returns a promise (? = just and index)</span></div><br><div><span style="color:rgb(0,16,128)">async</span> { </div><div>    <span style="color:rgb(0,0,255)">const</span> <span style="color:rgb(0,16,128)">x1</span> = <span style="color:rgb(175,0,219)">await</span>|| <span style="color:rgb(121,94,38)">p1</span>()</div><div>    <span style="color:rgb(0,0,255)">const</span> <span style="color:rgb(0,16,128)">x2</span> = <span style="color:rgb(175,0,219)">await</span> <span style="color:rgb(121,94,38)">p2</span>(<span style="color:rgb(0,16,128)">x1</span>)</div><div>    <span style="color:rgb(0,0,255)">const</span> <span style="color:rgb(0,16,128)">x3</span> = <span style="color:rgb(175,0,219)">await</span>|| <span style="color:rgb(121,94,38)">p3</span>()</div><div>    <span style="color:rgb(0,0,255)">const</span> <span style="color:rgb(0,16,128)">x10</span> = <span style="color:rgb(175,0,219)">await</span> <span style="color:rgb(121,94,38)">p10</span>(<span style="color:rgb(0,16,128)">x2</span>, <span style="color:rgb(0,16,128)">x3</span>)</div><div>    </div><div>    <span style="color:rgb(0,0,255)">let</span> <span style="color:rgb(0,16,128)">x4</span>, <span style="color:rgb(0,16,128)">x5</span>, <span style="color:rgb(0,16,128)">x6</span></div><div>    </div><div>    <span style="color:rgb(0,16,128)">async</span> {</div><div>        <span style="color:rgb(0,16,128)">x4</span> = <span style="color:rgb(175,0,219)">await</span>|| <span style="color:rgb(121,94,38)">p4</span>(<span style="color:rgb(0,16,128)">x1</span>, <span style="color:rgb(0,16,128)">x2</span>)</div><div>        <span style="color:rgb(0,16,128)">x5</span> = <span style="color:rgb(175,0,219)">await</span>|| <span style="color:rgb(121,94,38)">p5</span>(<span style="color:rgb(0,16,128)">x2</span>, <span style="color:rgb(0,16,128)">x3</span>)</div><div>        <span style="color:rgb(0,16,128)">x6</span> = <span style="color:rgb(175,0,219)">await</span> <span style="color:rgb(121,94,38)">p6</span>(<span style="color:rgb(0,16,128)">x4</span>, <span style="color:rgb(0,16,128)">x5</span>, <span style="color:rgb(0,16,128)">x10</span>)</div><div>    }</div><br><div>    <span style="color:rgb(0,0,255)">let</span> <span style="color:rgb(0,16,128)">x7</span>, <span style="color:rgb(0,16,128)">x8</span>, <span style="color:rgb(0,16,128)">x9</span></div><br><div>    <span style="color:rgb(0,16,128)">async</span> {</div><div>        <span style="color:rgb(0,16,128)">x7</span> = <span style="color:rgb(175,0,219)">await</span>|| <span style="color:rgb(121,94,38)">p7</span>(<span style="color:rgb(0,16,128)">x4</span>, <span style="color:rgb(0,16,128)">x6</span>)</div><div>        <span style="color:rgb(0,16,128)">x8</span> = <span style="color:rgb(175,0,219)">await</span> <span style="color:rgb(121,94,38)">p8</span>(<span style="color:rgb(0,16,128)">x6</span>, <span style="color:rgb(0,16,128)">x7</span>)</div><div>        <span style="color:rgb(0,16,128)">x9</span> = <span style="color:rgb(175,0,219)">await</span>|| <span style="color:rgb(121,94,38)">p9</span>(<span style="color:rgb(0,16,128)">x5</span>, <span style="color:rgb(0,16,128)">x6</span>)</div><div>    }</div><br><div>    <span style="color:rgb(175,0,219)">await</span> <span style="color:rgb(121,94,38)">p11</span>(<span style="color:rgb(0,16,128)">x8</span>, <span style="color:rgb(0,16,128)">x9</span>)</div><div>}</div><div style="font-family:Menlo,Monaco,"Courier New",monospace;font-size:12px;line-height:18px;white-space:pre-wrap"><br></div><div style="font-family:Menlo,Monaco,"Courier New",monospace;font-size:12px;line-height:18px;white-space:pre-wrap">// it would resolve a tree of parallel and series like following with traditional promises</div><br><div><span style="color:rgb(38,127,153)">Promise</span>.<span style="color:rgb(121,94,38)">resolve</span>()</div><div>    .<span style="color:rgb(121,94,38)">then</span>(() <span style="color:rgb(0,0,255)">=></span> <span style="color:rgb(38,127,153)">Promise</span>.<span style="color:rgb(121,94,38)">all</span>([<span style="color:rgb(0,16,128)">p1</span>, <span style="color:rgb(0,16,128)">p3</span>]))</div><div>    .<span style="color:rgb(121,94,38)">then</span>((<span style="color:rgb(0,16,128)">x1</span>, <span style="color:rgb(0,16,128)">x3</span>) <span style="color:rgb(0,0,255)">=></span> </div><div>        <span style="color:rgb(121,94,38)">p2</span>(<span style="color:rgb(0,16,128)">x1</span>)</div><div>            .<span style="color:rgb(121,94,38)">then</span>(<span style="color:rgb(0,16,128)">x2</span> <span style="color:rgb(0,0,255)">=></span> </div><div>                <span style="color:rgb(121,94,38)">p10</span>(<span style="color:rgb(0,16,128)">x2</span>, <span style="color:rgb(0,16,128)">x3</span>)</div><div>                     .<span style="color:rgb(121,94,38)">then</span>(<span style="color:rgb(0,16,128)">x10</span> <span style="color:rgb(0,0,255)">=></span> {</div><div>                        <span style="color:rgb(0,0,255)">let</span> <span style="color:rgb(0,16,128)">x4</span>, <span style="color:rgb(0,16,128)">x5</span>, <span style="color:rgb(0,16,128)">x6</span></div><br><div>                        <span style="color:rgb(175,0,219)">return</span> <span style="color:rgb(38,127,153)">Promise</span>.<span style="color:rgb(121,94,38)">resolve</span>()</div><div>                            .<span style="color:rgb(121,94,38)">then</span>(() <span style="color:rgb(0,0,255)">=></span> <span style="color:rgb(38,127,153)">Promise</span>.<span style="color:rgb(121,94,38)">all</span>([<span style="color:rgb(121,94,38)">p4</span>(<span style="color:rgb(0,16,128)">x1</span>, <span style="color:rgb(0,16,128)">x2</span>), <span style="color:rgb(121,94,38)">p5</span>(<span style="color:rgb(0,16,128)">x2</span>, <span style="color:rgb(0,16,128)">x3</span>)]))</div><div>                            .<span style="color:rgb(121,94,38)">then</span>(<span style="color:rgb(0,16,128)">results</span> <span style="color:rgb(0,0,255)">=></span> [<span style="color:rgb(0,16,128)">x4</span>, <span style="color:rgb(0,16,128)">x5</span>] = <span style="color:rgb(0,16,128)">results</span>)</div><div>                            .<span style="color:rgb(121,94,38)">then</span>(() <span style="color:rgb(0,0,255)">=></span> <span style="color:rgb(121,94,38)">p6</span>(<span style="color:rgb(0,16,128)">x4</span>, <span style="color:rgb(0,16,128)">x5</span>, <span style="color:rgb(0,16,128)">x10</span>))</div><div>                            .<span style="color:rgb(121,94,38)">then</span>(<span style="color:rgb(0,16,128)">x6</span> <span style="color:rgb(0,0,255)">=></span> {</div><div>                                <span style="color:rgb(0,0,255)">let</span> <span style="color:rgb(0,16,128)">x7</span>, <span style="color:rgb(0,16,128)">x8</span>, <span style="color:rgb(0,16,128)">x9</span></div><br><div>                                <span style="color:rgb(175,0,219)">return</span> <span style="color:rgb(38,127,153)">Promise</span>.<span style="color:rgb(121,94,38)">resolve</span>()</div><div>                                    .<span style="color:rgb(121,94,38)">then</span>(() <span style="color:rgb(0,0,255)">=></span> <span style="color:rgb(38,127,153)">Promise</span>.<span style="color:rgb(121,94,38)">all</span>([<span style="color:rgb(121,94,38)">p7</span>(<span style="color:rgb(0,16,128)">x4</span>, <span style="color:rgb(0,16,128)">x6</span>), <span style="color:rgb(121,94,38)">p9</span>(<span style="color:rgb(0,16,128)">x5</span>, <span style="color:rgb(0,16,128)">x6</span>)]))</div><div>                                    .<span style="color:rgb(121,94,38)">then</span>(<span style="color:rgb(0,16,128)">results</span> <span style="color:rgb(0,0,255)">=></span> [<span style="color:rgb(0,16,128)">x7</span>, <span style="color:rgb(0,16,128)">x9</span>] = <span style="color:rgb(0,16,128)">results</span>)</div><div>                                    .<span style="color:rgb(121,94,38)">then</span>(() <span style="color:rgb(0,0,255)">=></span> <span style="color:rgb(121,94,38)">p8</span>(<span style="color:rgb(0,16,128)">x6</span>, <span style="color:rgb(0,16,128)">x7</span>))</div><div>                                    .<span style="color:rgb(121,94,38)">then</span>(<span style="color:rgb(0,16,128)">_x8</span> <span style="color:rgb(0,0,255)">=></span> <span style="color:rgb(0,16,128)">x8</span> = <span style="color:rgb(0,16,128)">_x8</span>)</div><div>                                    .<span style="color:rgb(121,94,38)">then</span>(() <span style="color:rgb(0,0,255)">=></span> <span style="color:rgb(121,94,38)">p11</span>(<span style="color:rgb(0,16,128)">x8</span>, <span style="color:rgb(0,16,128)">x9</span>))</div><div>                            })</div><div>                     })</div><div>            )</div><div>    )</div></div></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;color:rgb(0,0,0)">```</div><br></div><div style="font-family:arial,helvetica,sans-serif;color:rgb(0,0,0)"><br></div></div></div>
</div></div></div>
</blockquote></div>
</blockquote></div>