← 返回首页
Error in setTimeout
EN

We want to make this open-source project available for people all around the world.

Help to translate the content of this tutorial to your language!

    Search
    Search
    Light themeDark theme
    عربيDanskEnglishEspañolفارسیFrançaisIndonesiaItaliano日本語한국어РусскийTürkçeУкраїнськаOʻzbek简体中文
    back to the lesson

    Error in setTimeout

    What do you think? Will the .catch trigger? Explain your answer.

    new Promise(function(resolve, reject) { setTimeout(() => { throw new Error("Whoops!"); }, 1000); }).catch(alert);
    solution

    The answer is: no, it won’t:

    new Promise(function(resolve, reject) { setTimeout(() => { throw new Error("Whoops!"); }, 1000); }).catch(alert);

    As said in the chapter, there’s an “implicit try..catch” around the function code. So all synchronous errors are handled.

    But here the error is generated not while the executor is running, but later. So the promise can’t handle it.