From 158f6f57444f16e7a179818d2a657d120ab4f065 Mon Sep 17 00:00:00 2001 From: Mihalis Fthenos Date: Sun, 12 Jun 2016 23:44:44 -0700 Subject: [PATCH] update async.js to Promises --- app/async.js | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/app/async.js b/app/async.js index 4028a67..1983fce 100644 --- a/app/async.js +++ b/app/async.js @@ -3,23 +3,29 @@ exports = typeof window === 'undefined' ? global : window; exports.asyncAnswers = { async: function(value) { - var dfd = $.Deferred(); - setTimeout(function() { - dfd.resolve(value); - }, 10); - return dfd.promise(); + return new Promise( + resolve => resolve(value) + ); }, manipulateRemoteData: function(url) { - var dfd = $.Deferred(); + return new Promise(function(resolve, reject) { - $.ajax(url).then(function(resp) { - var people = $.map(resp.people, function(person) { - return person.name; - }); - dfd.resolve(people.sort()); - }); + let xhr = new XMLHttpRequest(); + xhr.open('GET', url); + xhr.onload = function() { + if ( xhr.status == 200 ) + resolve(xhr.response); + else + reject(Error(xhr.statusText)); + } + xhr.send(); + + }).then(function(response) { - return dfd.promise(); + let data = JSON.parse(response).people; + return data.map( key => key.name ).sort(); + + }); } };