Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bluebird/1.2.2/bluebird.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/q.js/1.0.1/q.js"></script>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
</body>
</html>
 
var API = {
  getData: function (type) {
    var deferred = Q.defer();
    
    if (type === "users") {
      this.getUsers(deferred);
    }
    else if (type === "emails") {
      this.getEmails(deferred);
    }
    
    return deferred.promise.catch(function (error) {
      console.error(error);
    });
  },
  getUsers: function (deferred) {
    // This call succeeds after 250 ms
    setTimeout(function () {
      deferred.resolve([
        {
          userId: 1,
          userName: "UserOne"
        },
        {
          userId: 2,
          userName: "SecondUser"
        }
      ]);
    }, 250);
  },
  
  getEmails: function (deferred) {
    // This call fails after 250 ms
    setTimeout(function () {
      deferred.reject("Unable to connect to server");
    }, 250);
  }
};
var users = API.getData("users");
users.then(function (users) {
  console.log("List of users", users);
}).catch(function (error) {
  console.error(error);
});
var emails = API.getData("emails");
emails.then(function (emails) {
  console.log("List of emails", emails);
});
Output 300px

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers