I'd like to propose a `.tap` method on the Array prototype. I was able to
find some previous discussion here but it was off the main topic and seemed
to die out: https://mail.mozilla.org/pipermail/es-discuss/2015-
October/044454.html
A tap method enables the user to inspect an array in the chain.
For example, inspection:
If you have a chain like this:
```
[1, 2, 3]
.map(num => num * 2)
.reduce((a, b) => a + b);
```
When you want to see what the value of the array is between the map and
reduce, you would typically do this:
```
const value = [1, 2, 3]
.map(num => num * 2);
console.log(value);
value.reduce((a, b) => a + b);
```
With `.tap`, you'd be able to do this:
```
[1, 2, 3]
.map(num => num * 2)
.tap(console.log.bind(console));
.reduce((a, b) => a + b);
```
`.tap` would be called once, passed the entire array as the first argument
to the callback, and would return the array after the callback was finished.
This isn't something that can cleanly be done with a user-land function
since it would have to wrap the chain, or replace all of the chained
functions like underscore does.
An example of wrapping the chain:
```
myTap(
(
[1, 2, 3]
.map(num => num * 2)
),
console.log.bind(console);
)
.reduce((a, b) => a + b);
```
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss