Bird
Raised Fist0
Javascriptprogramming~5 mins

Then and catch methods in Javascript - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the then method do in JavaScript promises?
The then method runs a function when a promise is successfully completed (resolved). It lets you handle the result of the promise.
Click to reveal answer
beginner
What is the purpose of the catch method in promises?
The catch method runs a function when a promise fails (is rejected). It helps you handle errors or problems.
Click to reveal answer
intermediate
How do then and catch work together in promise chains?
You use then to handle success and catch to handle errors. This way, you can manage both outcomes in a clear, step-by-step way.
Click to reveal answer
beginner
What happens if you don’t use catch with a promise?
If you don’t use catch, errors in the promise might go unnoticed, causing bugs or unhandled promise rejections.
Click to reveal answer
beginner
Show a simple example of using then and catch with a promise.
Example:
fetch('https://api.example.com/data')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Error:', error));
Click to reveal answer
What does the then method do in a promise?
AHandles the successful result of the promise
BHandles errors in the promise
CStops the promise from running
DCreates a new promise
Which method is used to catch errors in a promise chain?
Afinally
Bthen
Ccatch
Dresolve
What will happen if a promise is rejected but there is no catch method?
AThe promise will automatically retry
BThe program will stop running
CThe <code>then</code> method will handle the error
DThe error will be ignored and may cause unhandled rejection warnings
Can you chain multiple then methods?
ANo, chaining is only for <code>catch</code>
BYes, to handle multiple steps after a promise resolves
CYes, but only if you use <code>catch</code> first
DNo, only one <code>then</code> is allowed
What does this code do?
promise.then(fn1).catch(fn2);
ARuns fn1 if promise resolves, fn2 if promise rejects
BRuns fn2 if promise resolves, fn1 if promise rejects
CRuns both fn1 and fn2 regardless of promise result
DRuns neither fn1 nor fn2
Explain how then and catch methods help manage asynchronous code in JavaScript.
Think about how you handle good and bad outcomes in real life.
You got /4 concepts.
    Describe a simple example where you would use then and catch with a promise.
    Imagine getting data from the internet and handling success or failure.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the then method do in JavaScript promises?
      easy
      A. Creates a new promise
      B. Runs when the task fails
      C. Stops the promise from running
      D. Runs when the task finishes successfully

      Solution

      1. Step 1: Understand the role of then

        The then method is used to handle the result when a promise completes successfully.
      2. Step 2: Differentiate from catch

        The catch method handles errors or failures, not success.
      3. Final Answer:

        Runs when the task finishes successfully -> Option D
      4. Quick Check:

        then = success handler [OK]
      Hint: Remember: then = success, catch = failure [OK]
      Common Mistakes:
      • Confusing then with catch
      • Thinking then stops the promise
      • Believing then creates a new promise
      2. Which of the following is the correct syntax to add a catch handler to a promise named p?
      easy
      A. catch(p, () => console.log('Error'))
      B. p.then.catch(() => console.log('Error'))
      C. p.catch(() => console.log('Error'))
      D. p.catch = () => console.log('Error')

      Solution

      1. Step 1: Recall correct catch syntax

        The catch method is called directly on the promise object like p.catch(callback).
      2. Step 2: Check each option

        p.catch(() => console.log('Error')) uses correct syntax. p.then.catch(() => console.log('Error')) chains incorrectly. p.catch = () => console.log('Error') tries to assign catch as a property. catch(p, () => console.log('Error')) uses invalid function call.
      3. Final Answer:

        p.catch(() => console.log('Error')) -> Option C
      4. Quick Check:

        Use promise.catch() syntax [OK]
      Hint: Use promise.catch(callback) to handle errors [OK]
      Common Mistakes:
      • Chaining catch after then incorrectly
      • Assigning catch as a property
      • Using catch as a standalone function
      3. What will be the output of this code?
      Promise.resolve('Hello')
        .then(msg => msg + ' World')
        .then(console.log)
        .catch(() => console.log('Error'));
      medium
      A. Hello
      B. Hello World
      C. Error
      D. undefined

      Solution

      1. Step 1: Follow promise resolution

        The promise resolves with 'Hello'. The first then adds ' World' to it, resulting in 'Hello World'.
      2. Step 2: Output from second then

        The second then logs the result 'Hello World'. The catch is not called because no error occurs.
      3. Final Answer:

        Hello World -> Option B
      4. Quick Check:

        Promise resolves + then chains = 'Hello World' [OK]
      Hint: then chains transform and pass values forward [OK]
      Common Mistakes:
      • Expecting catch to run without error
      • Ignoring value returned by first then
      • Thinking console.log returns undefined
      4. Identify the error in this code snippet:
      fetch('url')
        .then(response => response.json())
        .then(data => console.log(data))
        .catch(error => console.log('Error:', error));
      
      fetch('url')
        .then(response => response.json())
        .catch(error => console.log('Error:', error))
        .then(data => console.log(data));
      medium
      A. The second chain logs data even if fetch fails
      B. The first chain has wrong catch placement
      C. Both chains are correct
      D. fetch cannot be chained with then and catch

      Solution

      1. Step 1: Analyze first chain

        The first chain calls then twice and catch last, so errors are caught properly.
      2. Step 2: Analyze second chain

        The second chain calls catch before the last then. So even if fetch fails, the last then runs with undefined data, causing possible issues.
      3. Final Answer:

        The second chain logs data even if fetch fails -> Option A
      4. Quick Check:

        Catch before then can cause unexpected data [OK]
      Hint: Place catch last to handle errors before then [OK]
      Common Mistakes:
      • Placing catch before then incorrectly
      • Assuming catch stops later then calls
      • Ignoring promise chain order
      5. You want to fetch user data and then fetch their posts only if the user fetch succeeds. Which code correctly uses then and catch to do this?
      hard
      A. fetchUser() .then(user => fetchPosts(user.id)) .then(posts => console.log(posts)) .catch(err => console.log('Error:', err));
      B. fetchUser() .catch(err => console.log('Error:', err)) .then(user => fetchPosts(user.id)) .then(posts => console.log(posts));
      C. fetchUser() .then(user => fetchPosts(user.id)) .catch(err => console.log('Error:', err)) .then(posts => console.log(posts));
      D. fetchUser() .then(user => fetchPosts(user.id)) .catch(err => console.log('Error:', err)) .catch(err => console.log('Another error:', err));

      Solution

      1. Step 1: Understand chaining for dependent tasks

        We want to fetch posts only if user fetch succeeds, so fetchPosts must be inside the first then.
      2. Step 2: Place catch at the end

        Catch should be last to handle any error from either fetchUser or fetchPosts.
      3. Final Answer:

        fetchUser().then(user => fetchPosts(user.id)).then(posts => console.log(posts)).catch(err => console.log('Error:', err)); -> Option A
      4. Quick Check:

        Chain then for success, catch last for errors [OK]
      Hint: Chain dependent tasks in then, catch errors last [OK]
      Common Mistakes:
      • Placing catch before all then calls
      • Calling then after catch causing unexpected runs
      • Using multiple catch handlers unnecessarily
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard