freeCodeCamp/curriculum/challenges/english/02-javascript-algorithms-an.../es6/handle-a-rejected-promise-w...

2.5 KiB
Raw Blame History

id title challengeType forumTopicId
5cdafbe72913098997531682 Handle a Rejected Promise with catch 1 301204

Description

catch is the method used when your promise has been rejected. It is executed immediately after a promise's reject method is called. Heres the syntax:
myPromise.catch(error => {
  // do something with the error.
});

error is the argument passed in to the reject method.

Note: the then and catch methods can be chained to the promise declaration if you choose.

Instructions

Add the catch method to your promise. Use error as the parameter of its callback function and log error to the console.

Tests

tests:
  - text: You should call the <code>catch</code> method on the promise.
    testString: assert(codeWithoutSpaces.match(/(makeServerRequest|\))\.catch\(/g));
  - text: Your <code>catch</code> method should have a callback function with <code>error</code> as its parameter.
    testString: assert(errorIsParameter);
  - text: You should log <code>error</code> to the console.
    testString: assert(errorIsParameter && codeWithoutSpaces.match(/\.catch\(.*?error.*?console.log\(error\).*?\)/));

Challenge Seed

const makeServerRequest = new Promise((resolve, reject) => {
  // responseFromServer is set to false to represent an unsuccessful response from a server
  let responseFromServer = false;
	
  if(responseFromServer) {
    resolve("We got the data");
  } else {	
    reject("Data not received");
  }
});

makeServerRequest.then(result => {
  console.log(result);
});

After Test

const codeWithoutSpaces = code.replace(/\s/g, '');
const errorIsParameter = /\.catch\((function\(error\){|error|\(error\)=>)/.test(codeWithoutSpaces);

Solution

const makeServerRequest = new Promise((resolve, reject) => {
  // responseFromServer is set to false to represent an unsuccessful response from a server
  let responseFromServer = false;
	
  if(responseFromServer) {
    resolve("We got the data");
  } else {	
    reject("Data not received");
  }
});

makeServerRequest.then(result => {
  console.log(result);
});

makeServerRequest.catch(error => {
  console.log(error);
});