Skip to content

Instantly share code, notes, and snippets.

@roman01la
Last active August 29, 2015 14:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save roman01la/b0d123ee2e795f3207d6 to your computer and use it in GitHub Desktop.
Save roman01la/b0d123ee2e795f3207d6 to your computer and use it in GitHub Desktop.
Fetch.js
var fetch = function (url) {
return new Promise(function (resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.onload = function() {
if (xhr.status === 200) {
resolve(xhr);
} else {
reject(xhr.status);
}
};
xhr.send();
});
};
/* Usage */
fetch('/')
.then(function (body) { return body.responseText; })
.then(function (str) { console.log(str); })
.catch(function (err) { console.log(err); });
/* With ES7 async/await */
(async function() {
var users = await fetch('/users');
var user = await fetch('/users/' + users[0].id);
console.log(user);
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment