Callback

Callback is a function that is called when the result of an asynchronous function is ready.


Here is an exercise for you: Add an asynchronous function, getLoans, that simulates sending a HTTP GET request to a bank, providing the account number, to receive a list of loans associated with the given account. Use the callback pattern to display the loans.

function getUser(id, callback) {
  console.log("Reading a user from a database...");
  setTimeout(() => {
    console.log("Received user data...");
    callback({ "ID": id, "Account number": "58721094531267" });
  }, 2000);
}

function getLoans(account) {
  // TODO update this to an asynchronous function
  return ["loan 1", "loan 2", "loan 3"];
}

console.log("listening for events");
getUser(1, (user) => { 
  console.log(user);

  // TODO call getLoans and display the returned values

});
console.log("still listening for events!");
Solution
function getUser(id, callback) { console.log("Reading a user from a database..."); setTimeout(() => { console.log("Received user data..."); callback({ "ID": id, "Account number": "58721094531267" }); }, 2000); } function getLoans(account, callback) { console.log("Sending HTTP GET request to a bank..."); setTimeout(() => { console.log("Received loan data..."); callback(["loan 1", "loan 2", "loan 3"]); }, 2000); } console.log("listening for events"); getUser(1, (user) => { console.log(user); getLoans(user["Account number"], (loans) => { console.log(loans); }) }); console.log("still listening for events!");