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

2.6 KiB
Raw Blame History

id title challengeType forumTopicId
5cdafbd72913098997531681 Handle a Fulfilled Promise with then 1 301203

Description

Promises are most useful when you have a process that takes an unknown amount of time in your code (i.e. something asynchronous), often a server request. When you make a server request it takes some amount of time, and after it completes you usually want to do something with the response from the server. This can be achieved by using the then method. The then method is executed immediately after your promise is fulfilled with resolve. Heres an example:
myPromise.then(result => {
  // do something with the result.
});

result comes from the argument given to the resolve method.

Instructions

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

Tests

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

Challenge Seed

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

After Test

const codeWithoutSpaces = code.replace(/\s/g, '');
const resultIsParameter = /\.then\((function\(result\){|result|\(result\)=>)/.test(codeWithoutSpaces);

Solution

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

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