Promise All&Spread

Promise All&Spread

by epinapala

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/bluebird/3.4.0/bluebird.core.min.js"></script>
<script src="https://getfirebug.com/firebug-lite-debug.js"></script>

JavaScript

//Mock async operations
var step1 = function(ms) {
  return new Promise(function(resolve, reject) {
    setTimeout(function() {
      console.log("This is step 1");
      resolve("Return Step 1 ");
    }, ms);
  })
}
var step2 = function(ms) {
  return new Promise(function(resolve, reject) {
    setTimeout(function() {
      console.log("This is step 2");
      resolve("Return step 2 ");
    }, ms);
  })
};
var step3 = function(ms) {
  return new Promise(function(resolve, reject) {
    setTimeout(function() {
      console.log("This is step 3");
      resolve("Return Step 3 ");
    }, ms);
  })
};

// Promise All
Promise.all([
  step1(10),
  step2(15),
  step3(10)
]).spread(function(ret1, ret2, ret3) {//On finish get the respective values
  console.log("Spread results: " + ret1 + " - " + ret2 + " - " + ret3);
})