DEV Community

loading...

Discussion on: js-coroutines gives your code: data indexing and lookup functionality, in idle time

miketalbot profile image
Mike Talbot Author • Edited

Odd on the "out of the box" all my tests seem to be ok. You probably don't want to yield that much. I'd be saying (if collection is an array) that you should yield every 32 or something using

    if((key & 31) === 0) yield

It's a balance between checking often enough and slowing it down a lot by checking too much.

In more recent versions you can also just call run() on the result of executing the generator, in your example this simplified the second routine to be:

const dispatchKeyBy = async (dt, key, action)=>{

    let kby  = await run(xKeyBy(dt, x=>x[key]));

    dispatch({type: action.type , payload: kby});

  }

npm version should be 2.3.62

Thread Thread
vldmrgnn profile image
Vlad

It totally make sense!
Updated the npm as I was way behind... odd that I had to uninstall and then install again. Otherwise it was still version 1.1.36.
I hope that will not break the code now :)
Thanks for everything!

Thread Thread
miketalbot profile image
Mike Talbot Author • Edited

Right I added a breaking change a while ago, but it only affects a very small use case, so hopefully all ok. It was when I changed from using an external polyfill for requestIdleCallback to the new internal one.

Thread Thread
vldmrgnn profile image
Vlad

Updated an everything seems to work like a charm!
Still It seems that you forgot some "debugger" at keyBy in array-utilities.js.
(Should I have written on GitHub on that? if so sorry)

Thread Thread
miketalbot profile image
Mike Talbot Author

Ouch lol. Ooops. Fixing that.

Thread Thread
miketalbot profile image
Mike Talbot Author

2.3.63 - removed the debugger

Forem Open with the Forem app