Bird
Raised Fist0
Javascriptprogramming~5 mins

Creating promises in Javascript - Quick Revision & Summary

Choose your learning style10 modes available
Recall & Review
beginner
What is a Promise in JavaScript?
A Promise is an object that represents the eventual completion or failure of an asynchronous operation. It helps handle async tasks by allowing you to attach callbacks for success or failure.
Click to reveal answer
beginner
How do you create a new Promise?
You create a Promise by using the new Promise() constructor and passing a function with two parameters: resolve and reject. Inside this function, you perform your async task and call resolve() if it succeeds or reject() if it fails.
Click to reveal answer
beginner
What do the resolve and reject functions do in a Promise?
resolve is called when the async operation finishes successfully, passing the result. reject is called when the operation fails, passing an error or reason.
Click to reveal answer
beginner
Show a simple example of creating a Promise that resolves after 1 second.
Example:<br><pre>const waitOneSecond = new Promise((resolve, reject) =&gt; {
  setTimeout(() =&gt; {
    resolve('Done waiting!');
  }, 1000);
});</pre>
Click to reveal answer
beginner
Why use Promises instead of callbacks?
Promises make async code easier to read and manage by avoiding "callback hell". They provide a clear way to handle success and errors, and can be chained for sequential async tasks.
Click to reveal answer
What are the two functions passed to the Promise constructor?
Athen and catch
Bstart and stop
Cresolve and reject
Dopen and close
Which method is used to handle a successful Promise result?
Acatch()
Bthen()
Cfinally()
Dstart()
What does calling reject() inside a Promise do?
APauses the Promise
BMarks the Promise as fulfilled
CRestarts the Promise
DMarks the Promise as rejected
How do you create a Promise that waits 2 seconds before resolving?
Anew Promise(resolve => setTimeout(resolve, 2000))
Bnew Promise(reject => setTimeout(reject, 2000))
CPromise.wait(2000)
DPromise.delay(2000)
Why are Promises preferred over nested callbacks?
AThey make code easier to read and manage
BThey use less memory
CThey run faster
DThey don't require functions
Explain how to create a Promise and what the roles of resolve and reject are.
Think about how you tell the Promise when the task is done or failed.
You got /4 concepts.
    Describe a simple example where a Promise waits 1 second before completing.
    Imagine waiting for a timer before saying 'done'.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the resolve function do inside a JavaScript Promise?
      easy
      A. It pauses the promise execution.
      B. It marks the promise as failed.
      C. It marks the promise as successfully completed.
      D. It cancels the promise.

      Solution

      1. Step 1: Understand the role of resolve in promises

        The resolve function is called when the asynchronous task finishes successfully.
      2. Step 2: Differentiate from reject

        reject is used for failure, so resolve must mean success.
      3. Final Answer:

        It marks the promise as successfully completed. -> Option C
      4. Quick Check:

        resolve = success [OK]
      Hint: Resolve means success, reject means failure [OK]
      Common Mistakes:
      • Confusing resolve with reject
      • Thinking resolve cancels the promise
      • Believing resolve pauses execution
      2. Which of the following is the correct syntax to create a new Promise in JavaScript?
      easy
      A. new Promise(resolve, reject) => { }
      B. Promise.new((resolve, reject) => { })
      C. new Promise { resolve, reject => }
      D. new Promise((resolve, reject) => { })

      Solution

      1. Step 1: Recall the Promise constructor syntax

        The Promise constructor takes a single function with two parameters: resolve and reject, wrapped in parentheses.
      2. Step 2: Check each option for correct syntax

        new Promise((resolve, reject) => { }) correctly uses new Promise((resolve, reject) => { }). Others have syntax errors.
      3. Final Answer:

        new Promise((resolve, reject) => { }) -> Option D
      4. Quick Check:

        Promise syntax = new Promise((resolve, reject) => { }) [OK]
      Hint: Promise needs a function with (resolve, reject) inside parentheses [OK]
      Common Mistakes:
      • Missing parentheses around parameters
      • Using wrong keyword order
      • Incorrect arrow function syntax
      3. What will be the output of this code?
      const p = new Promise((resolve, reject) => {
        resolve('Done');
      });
      p.then(result => console.log(result));
      medium
      A. Done
      B. undefined
      C. Error
      D. Promise { <pending> }

      Solution

      1. Step 1: Understand promise resolution

        The promise calls resolve('Done'), so it completes successfully with value 'Done'.
      2. Step 2: Check what then does

        then receives the resolved value and logs it, so 'Done' is printed.
      3. Final Answer:

        Done -> Option A
      4. Quick Check:

        Resolved value logged = Done [OK]
      Hint: Resolve value appears in then callback [OK]
      Common Mistakes:
      • Expecting undefined instead of resolved value
      • Confusing promise object with resolved output
      • Thinking promise logs automatically
      4. Find the error in this Promise creation code:
      const p = new Promise(resolve, reject) => {
        resolve('Success');
      };
      medium
      A. The reject function is never called.
      B. Arrow function syntax is incorrect for Promise constructor.
      C. Promise constructor missing the new keyword.
      D. No error, code is correct.

      Solution

      1. Step 1: Check Promise constructor usage

        The Promise constructor requires a single function argument wrapped in parentheses.
      2. Step 2: Identify arrow function syntax error

        The code uses new Promise(resolve, reject) => { } which is invalid syntax. It should be new Promise((resolve, reject) => { }).
      3. Final Answer:

        Arrow function syntax is incorrect for Promise constructor. -> Option B
      4. Quick Check:

        Arrow function must be inside parentheses [OK]
      Hint: Promise needs one function argument wrapped in parentheses [OK]
      Common Mistakes:
      • Not wrapping parameters in parentheses
      • Omitting new keyword (not in this case)
      • Using wrong arrow function syntax
      5. You want to create a Promise that waits 1 second and then resolves with 'Done'. Which code correctly does this?
      hard
      A. new Promise((resolve) => { setTimeout(() => resolve('Done'), 1000); })
      B. new Promise(resolve => setTimeout(resolve('Done'), 1000))
      C. new Promise((resolve, reject) => { resolve('Done'); setTimeout(() => {}, 1000); })
      D. new Promise(() => { setTimeout(() => resolve('Done'), 1000); })

      Solution

      1. Step 1: Understand how to delay resolution

        Use setTimeout to delay calling resolve by 1000 ms (1 second).
      2. Step 2: Check each option for correct usage

        new Promise((resolve) => { setTimeout(() => resolve('Done'), 1000); }) correctly passes a function to Promise and calls resolve('Done') inside setTimeout. new Promise(resolve => setTimeout(resolve('Done'), 1000)) calls resolve immediately. new Promise((resolve, reject) => { resolve('Done'); setTimeout(() => {}, 1000); }) resolves immediately and delays nothing. new Promise(() => { setTimeout(() => resolve('Done'), 1000); }) does not receive resolve parameter.
      3. Final Answer:

        new Promise((resolve) => { setTimeout(() => resolve('Done'), 1000); }) -> Option A
      4. Quick Check:

        Delay resolve with setTimeout inside Promise [OK]
      Hint: Wrap resolve call inside setTimeout function [OK]
      Common Mistakes:
      • Calling resolve immediately instead of inside setTimeout
      • Not passing resolve parameter
      • Placing setTimeout outside Promise
      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