Promises demo code
/* global $ */
'use strict';
// instructor
const url = 'https://swapi.co/api/films/1';
// ======================================
console.log('first');
$.getJSON(url, (results) => {
console.log('done');
console.log(results);
});
console.log('second');
// Callback Hell
// alexa
// $.getJSON(url, (results) => {
// //Anh
// $.getJSON(url, (results) => {
// //Bianca
// $.getJSON(url, (results) => {
// //Chris
// $.getJSON(url, (results) => {
// console.log('Chris done');
// console.log(results);
// });
// console.log('Bianca done');
// console.log(results);
// });
// console.log('Anh done');
// console.log(results);
// });
// console.log('Alexa done');
// console.log(results);
// });
// Chained Promises
// Alexa
// $.getJSON(url)
// .then((results) => {
// console.log('Alexa done');
// console.log(results);
// return $.getJSON(url);
// })
// .then((results) => {
// console.log('Anh done');
// console.log(results);
// return $.getJSON(url);
// })
// .then((results) => {
// console.log('Bianca done');
// console.log(results);
// return $.getJSON(url);
// })
// .then((results) => {
// console.log('Chris done');
// console.log(results);
// return $.getJSON(url);
// });
// Chained Promises useing SWAPI
// $.getJSON(url)
// .then(film => {
// console.log(film.title);
// return $.getJSON(film.characters[0]);
// }).then(character => {
// console.log(character.name);
// return $.getJSON(character.starships[0]);
// }).then(starship => {
// console.log(starship.name);
// });
// Parallel Promises
const promiseA = $.getJSON('https://swapi.co/api/films/1/');
const promiseB = $.getJSON('https://swapi.co/api/films/2/');
const promiseC = $.getJSON('https://swapi.co/api/films/3/');
Promise.all([promiseA, promiseB, promiseC])
.then(responses => {
const [resA, resB, resC] = responses;
console.log(resA.title);
console.log(resB.title);
console.log(resC.title);
});
console.log('second');