Skip to content

Latest commit

 

History

History
363 lines (272 loc) · 5.77 KB

File metadata and controls

363 lines (272 loc) · 5.77 KB

Promises

  1. Promise is introduced in which version of JavaScript?

    • A: ES5
    • B: ES6
    • C: ES8
    • D: ES8

    Answer

    Option: B


  2. When do we say that a promise is 'settled'?

    • A: If it is fulfilled
    • B: If it is rejected
    • C: If it is pending
    • D: If it is either fulfilled or rejected

    Answer

    Option: D


  3. What will be the output?

    const validateUsernamePassword = (username, password) => {
    	return new Promise((resolve, reject) => {
    		if (username == "ABC" && password == "123") {
    			resolve("SUCCESS!");
    		} else {
    			reject("FAILURE!");
    		}
    	});
    };
    
    validateUsernamePassword("ABC", "123")
    	.then((msg) => {
    		console.log(msg);
    	})
    	.catch((err) => {
    		console.log(err);
    	});
    • A: SUCCESS!
    • B: FAILURE!

    Answer

    Option: A


  4. What will be the output?

    let setTimeoutResolveReject = new Promise((resolve, reject) => {
    	setTimeout(() => {
    		resolve("YES");
    	}, 3000);
    	setTimeout(() => {
    		reject("NO")
    	}, 2000);
    });
    
    setTimeoutResolveReject
    .then((msg) => {
    	console.log(msg);
    })
    .catch((err) => {
    	console.log(err);
    })
    • A: YES
    • B: NO
    • C: NO\nYES
    • D: YES\nNO

    Answer

    Option: B


  5. While execution, the random value of randomWaitTime generated was 3800. What will be the output?

    let examplePromise = new Promise((resolve, reject) => {
    	let timeout = 3000;
    	let randomWaitTime = Math.floor(Math.random() * 5000) + 1;
    	console.log(randomWaitTime);
    	if (randomWaitTime <= timeout) {
    		setTimeout(() => {
    			resolve();
    		}, randomWaitTime);
    	} else {
    		setTimeout(() => {
    			reject();
    		}, randomWaitTime);
    	}
    });
    
    examplePromise
    	.then(() => {
    		console.log("RESOLVED!");
    	})
    	.catch(() => {
    		console.log("REJECTED!");
    	});
    • A: RESOLVED!
    • B: REJECTED!

    Answer

    Option: B


  6. Which of the following isn’t a method of Javascript Promise?

    • A: Promise.then()
    • B: Promise.all()
    • C: Promise.error()
    • D: Promise.catch()

    Answer

    Option: C


  7. Which of the following isn’t a state of Javascript Promise?

    • A: fulfilled
    • B: awaited
    • C: pending
    • D: rejected

    Answer

    Option: B


  8. What is the output?

    new Promise((resolve, reject) => {
      console.log(4)
      resolve(5)
      console.log(6)
    }).then(() => console.log(7))
    .catch(() => console.log(8))
    .then(() => console.log(9))
    .catch(() => console.log(10))
    .then(() => console.log(11))
    .then(console.log)
    .finally(() => console.log(12))
    • A: 4 6 7 9 11 12
    • B: 4 6 7 9 11 undefined 12
    • C: 4 6 8 12

    Answer

    Option: B


  9. What's the output of the following Promise Operation?

    const promise_1 = Promise.resolve('First');
    const promise_2 = Promise.resolve('Second');
    const promise_3 = Promise.reject('Third');
    const promise_4 = Promise.resolve('Fourth');
    
    const runPromises = async () => {
    	const res1  = await Promise.all([promise_1, promise_2])
    	const res2  = await Promise.all([promise_3, promise_4])
    	return [res1, res2];
    }
    
    runPromises()
    	.then(res => console.log(res))
    	.catch(err => console.log(err))
    • A: [['First', 'Second'], ['Third']]
    • B: [['First', 'Second'], ['Third', 'Fourth']]
    • C: [['First', 'Second']]
    • D: 'Third'

    Answer

    Option: D

    Promise.all[...promises] method wait for an array of promises to resolve. Promise.all() will reject immediately upon any of the input promises being rejected. In our case, During runPromises() function invocation, promise_3 gets rejected with the value 'Third'. The value gets logged to the console, via error handling Promise Instance Method catch(). As a result, 'Third' gets printed.


  10. What's the output of the following Promise operation?

    var p = new Promise((resolve, reject) => {
      reject(Error('The Fails!'))
    })
    p.catch(error => console.log(error.message))
    p.catch(error => console.log(error.message))
    • A: print error message once
    • B: print error message twice
    • C: Unhandled Promise Rejection warning
    • D: process exits

    Answer

    Option: B

    The promise p gets rejected due to reject callback in Promise Constructor and the error message gets attached to the .catch() method. In this case, .catch() works like the DOM .addEventListener('event', callback) method. Both catch method will be called separately with the same arguments. Hence, the error message gets printed twice.


  11. What's the order of output of the following Promise operation?

    console.log('initial');
    setTimeout(function() {
       console.log('setTimeout');
    }, 0);
    var promise = new Promise(function(resolve, reject) {
       resolve();
    });
    promise.then(function(resolve) {
       console.log('1st Promise');
    })
    .then(function(resolve) {
       console.log('2nd Promise');
    });
    console.log('final');
    • A: initial \n 1st Promise \n 2nd Promise \n setTimeout \n final
    • B: initial \n final \n 1st Promise \n 2nd Promise \n setTimeout
    • C: initial \n setTimeout \n 1st Promise \n 2nd Promise \n final
    • D: initial \n final \n 1st Promise \n setTimeout \n 2nd Promise

    Answer

    Option: B