The "Pipeline" Operator - Making multiple function calls look great

Gilbert B Garza gilbertbgarza at gmail.com
Sat Dec 12 17:17:05 UTC 2015


Ah yes, you are correct, it would need to be a special case as I wrote it.
This version should work instead:

```js
// Assume fs.readFile is an `async` function
async function runTask () {
  fs.readFile('./index.txt')
    |> await
    |> file => file
       .split('\n')
       .map(fs.readFile)
    |> Promise.all
    |> await
    |> all => all.join("\n")
    |> console.log
}
```

On Fri, Dec 11, 2015 at 7:08 PM, Kevin Smith <zenparsing at gmail.com> wrote:

> ```js
>> // Assume fs.readFile is an `async` function
>> async function runTask () {
>>   './index.txt'
>>     |> await fs.readFile
>>     |> file => file
>>        .split('\n')
>>        .map(fs.readFile)
>>     |> await Promise.all
>>     |> all => all.join("\n")
>>     |> console.log
>> }
>> ```
>>
>
> This doesn't work unless you special case the semantics of await
> expressions.  With the current semantics, `await fs.readFile` will just
> await `fs.readFile` not the result of applying it.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20151212/35050673/attachment.html>


More information about the es-discuss mailing list