Basically saying both are same. But there are some differences.

Lets see what are some of the advantages of Promises.

  • Promises are just a cleaner way for running asynchronous callbacks.
  • Promises also has error catching mechanism which are not in callbacks.
  • Promises are an abstraction for cleaner and better functional code.

What are callbacks?

Callback is a function that is passed to another function as a parameter, and the callback function is called (or executed) inside the otherFunction

Example

  $("#myBtn").click(function() {
  	alert("Button Clicked");
  });
  

They are basically closures.

What are Promises?

Promises takes one argument, a callback with two parameters, resolve and reject. If the call is a sucess call resolve else call reject.

Example

var promise = new Promise(function(resolve, reject) {
  // do a thing, possibly async, then…

  if (// worked) {
    resolve("Sucessfully completed");
  }
  else {
    reject("something went wrong"));
  }
});

You can also use chanining, like if in a synchronous code, you want to do one after another.

Example

getData('data.json').then(function(mydata) {
  return getData(mydata[0]);
}).then(function(mydata0) {
  console.log("Got mydata!", mydata);
})

Promises with Error functions.

getData('data.json').then(function(response) {
  console.log("Success!", response);
}, function(error) {
  console.log("Failed!", error);
})

Here there are two functions inside the then(), one for success and other for failure.

Promises with catch

getData('data.json').then(function(response) {
  console.log("Success!", response);
}).catch(function(error) {
  console.log("Failed!", error);
})

Not much about catch. Just a sugar for then() method.

All Promises at once

What if we have a chain of functions and we want to process it only when all completes.

Then the code will be like this.

Promise.all(arrayOfPromises).then(function(arrayOfResults) {
  //...
})
 

Leave a Reply

Your email address will not be published. Required fields are marked *

 

 

 

Theme by HermesThemes

Copyright © 2018 CoderzHeaven. All Rights Reserved

Please wait...

Subscribe to our newsletter

Want to be notified when our article is published? Enter your email address and name below to be the first to know.