Open dkebler opened 7 years ago
yes it's the when library... I switched to bluebird no warnings.
Seems like cujojs project is dead, many unclosed unresponded issues... :-(.
Hi @dkebler. The messages you've reported are coming from Node's promise implementation, not from when.js. Here's what when.js's unhandled rejections look like.
I have no explanation for why Node is warning in this case. However, I have encountered a similar situation in another project, in a completely different context. most.js uses markdown-doctest to test the examples shown in all its documentation. As of Node 6.9.1, I get 4 warnings from Node's promise implementation when running the tests, and never got any before:
Note that markdown-doctest doesn't use when.js at all, and the format in that screenshot is the same as in your example.
So, I don't believe this is a when.js issue, but rather an issue introduced into Node 6.9.1.
This started coming up in my code and it happens when a rejection does not fully bubble up the chain. Until one finds and "fixes" them all the warning doesn't go away. For example if you have a returning promise inside another new one and you resolve inside the .then but add no .catch(e=>reject(e)) to the end you will get this warning. It's node's way of saying you have a "broken" chain issue. Like I said bluebird reduce does not throw this warning. I'd take a look rather than blame it on node. I can't use when if it throws this error because it causes my cli not to return to the prompt.
This is probably not related but I'll drop it here anyways (nodejs/node#821)
This is my when.reduce code
any rejection in
processor
or lower gets hung (unhandled) at when.reduceon the other hand...resolutions bubble up fine
FINAL response back [ 'manual resolution in processor' ]
to make sure it is when reduce I substituted this
return processor(cmds[0]);
and yes both resolutions and rejections bubble on through.Is there an error in my construction of the reducer function or is this a bug?
Note I am using the latest version of nodejs 6.9.1 which since 6.0 now throws these warnings for any unhandled rejections