Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

In Javascript, a Promise is started as soon as it is created. In other words, this is not the `await` that starts the Promise.

If the first await is the slowest, the second one will return immediately (like calling .then on an already resolved promise).



+1 Notably, this is different in Python where promises (futures) are executed lazily, i.e. when you await them.


Pretty sure there can be unexpected behavior if you wait too long before you do those awaits at the end.


No, why would there be?


Node 16 will exit if an exception is thrown and not awaited for some finite period of time. So if your goal is to keep those promises in some cache and then resolve them later on at your leisure, you will find the entire node process will abort. There is a feature flag to restore the older behavior but it’s a pretty big gotcha.


There is no such finite period of time. You can call an async function and never await it.

Exception handling is something completely different. Yes, if you call an async function and do not catch the exception, Node will stop. But that is independent of having called await or not. Whether or not you await something async does not affect exception behavior.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: