Identify the stage of failure and the value a handler returns.
Review Promise reactions, all, catch recovery, async return values, JSON parsing and strict frozen-property assignment.
This count records matching keys on six supplied Node 24 ES module tasks. It is not a developer level, percentile, employer cutoff or qualification. Every answer and all four complete guides are available at every count.
Six deterministic async and failure examples
The Promise tasks use already settled inputs or an async function with a directly returned value. They ask about a synchronous array push before reactions, the values collected by Promise.all, a catch handler’s replacement value and the result of an async function. The error tasks distinguish valid JavaScript that parses invalid JSON at runtime from a strict-mode assignment to a frozen property. No question requires guessing a network response, a timer delay or the ordering of unrelated host APIs.
Follow the value after a catch returns
For a new unscored example, begin with Promise.reject("no"), attach catch(()=>6), and then print value+2 in the next then. The handler returns the ordinary number six, which fulfills the next Promise; the later callback prints eight. If the catch instead throws, or returns another rejecting Promise, the continuation would differ. Track the returned value and the next Promise’s state separately, rather than assuming that entering catch permanently prevents the chain from fulfilling.
Keep the synchronous phase separate
In the supplied ordering task, the module first performs its ordinary synchronous push. Promise reactions run as later jobs, and the next reaction prints after the earlier one has changed the array. That supports this one deterministic trace. It is not a blanket claim that every browser and Node event loop behaves identically or that all callbacks run after every possible loop. Those broader claims require the host, API and placement to be specified.
Read all and async as Promise operations
Promise.all in this bank collects two fulfilled values in input order, rather than summing numbers or choosing a guessed completion order. An async function returns a Promise that can fulfill with its returned number, so its then receives that number. A rejection handled by a catch that returns an ordinary value can become fulfillment downstream. None of these examples establishes that rejecting a combined Promise cancels work represented by its other inputs; cancellation is a separate concern.
Distinguish a syntax error from a printed error name
A valid module can call JSON.parse on incomplete JSON, catch the resulting SyntaxError object and print its name. That differs from the two declaration tasks elsewhere that fail before execution. In the frozen-property task, ES module strict mode makes the non-writable assignment throw TypeError, and the numeric property remains unchanged. State whether you are predicting a parser outcome, a thrown error, a caught error or a printed string before selecting the answer.
Write a short state-and-output trace
Use a fresh .mjs file with invented labels and no external requests. Mark synchronous steps first, then each reaction’s input, returned value and next state. Test one recovery path and one explicit thrown error separately so their outputs cannot obscure each other. Predict before running in the declared environment. This is optional practice on your own machine, without a promised improvement rate; the website does not run scripts submitted by visitors or inspect real production logs.
Use the worked review instead of a professional label
The six matching-key choices describe these selected tasks only. They do not establish that you can diagnose a production race, design reliable asynchronous software or meet an employer’s requirements. All explanations and complete guides are free at every count, with no calibrated ability bands or certificate. The bank is fixed, and English code remains unchanged across interfaces. Reading keys before a repeat attempt can improve memory without demonstrating transfer to unfamiliar asynchronous code.