Hacker News new | past | comments | ask | show | jobs | submit login

OK. I see why they would have chosen to do that, and it disappoints me, but it seems to be weirdly more complex than that... this code prints the numbers in order (and continues to do so if you rearrange the calls to setImmediate and setTimeout or move them outside of the function either before or after)... so it is definitely returning from the function but it seems like the resolved value gets to jump the queue?

    (async () => {
        setImmediate(function() {
            console.log("4");
        });
        setTimeout(function() {
            console.log("3");
        }, 0);
        console.log(await new Promise((resolve, reject) => {
            console.log("0");
            resolve("2");
        }));
    })().catch();
    console.log("1");



I don't think it is a good idea to expect some specific order in executing callbacks here unless it is described in some specification.




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

Search: