Advertisement
Guest User

Implementing promises

a guest
Jul 26th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function makePromise(callback){
  2.   var onsuccess = function(){};
  3.   var onerror = function(){};
  4.   var promise = {
  5.     then: function(func){
  6.       onsuccess = func;
  7.       return this;
  8.     },
  9.     catch: function(func){
  10.       onerror = func;
  11.       return this;
  12.     }
  13.   };
  14.   function resolve(data){
  15.     onsuccess.call(null, data);
  16.   }
  17.   function reject(err){
  18.     onerror.call(null, err);
  19.   }
  20.   callback.call(null, resolve, reject);
  21.   return promise;
  22. }
  23. makePromise(function(resolve, reject){
  24.   setTimeout(function(){
  25.     Math.random() > 0.5 ? resolve(42) : reject(new Error("An error has occurred!"));
  26.   }, 500);
  27. }).then(function(x){
  28.   console.log(x);
  29. }).catch(function(err){
  30.   console.log(err);
  31. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement