function getResponse(url) {
return new Promise(function(success, failure) {
var request = new XMLHttpRequest();
request.open('GET', url);
request.onload = function() {
if (request.status == 200) {
return success(request.response);
} else {
return failure("Error in processing..!" + request.status);
}
}
request.onerror = function() {
return failure("Error in processing ");
}
request.send();
});
}
function getUsername(response) {
response = JSON.parse(response);
return response["login"];
}
function makeUsernameCaps(name) {
return new Promise(function(success, failure) {
// Let's assume it takes 3secs to make the username caps :)
setTimeout(function() {
success(name.toUpperCase());
}, 3000)
});
}
async function apiCall(url) {
let response = await getResponse(url);
let username = await getUsername(response);
let username_in_caps = await makeUsernameCaps(username);
return username_in_caps;
}
apiCall("https://api.github.com/users/srebalaji")
.then(function(x) {
console.log(x);
})
.catch(function(x) {
console.log("Error - "+x);
});
async function Max(a, b) {
if (a > b) {
return Promise.resolve("Success");
}
else {
return Promise.reject("Error");
}
}
Max(4, 10)
.then(function(x) {
console.log("Good " + x);
})
.catch(function(x) {
console.log("Oops " + x);
});
Output:
Oops Error
// If we pass Max(14, 10) then we should get "Good Success" :)
async function hello(a, b) {
if (a < b) {
return "Greater";
}
else {
return new Error("Not Greater");
}
}
hello(14, 10)
.then(function(x) {
console.log("Good..! " + x);
})
.catch(function(x) {
console.log("Oops..! " + x);
})
Output:
Oops..! Not Greater.
// if you call hello(4, 10) you get "Good..! Greater"
var ApiCall = new Promise(function(resolve, reject) {
var request = new XMLHttpRequest();
request.open('GET', 'https://api.github.com/users/srebalaji');
request.onload = function() {
if (request.status == 200) {
resolve(request.response);
} else {
reject(Error(request.statusText));
}
}
request.send();
});
ApiCall
.then(function(x) {
document.getElementById('response').innerHTML = x;
})
.catch(function(x) {
document.getElementById('response').innerHTML = x;
})