From e1f95e3eca694cc444c2965d8fd348c4f59ffd35 Mon Sep 17 00:00:00 2001 From: sergeyzharko Date: Wed, 13 Dec 2017 23:38:15 +0300 Subject: [PATCH] Async/await --- 2-Babel/ReadMe.txt | 38 +++++++++++++++++++++++++++++++ 2-Babel/index.html | 1 + 2-Babel/script-compiled.js | 46 +++++++++++++++++++++++++++++++------- 2-Babel/script.js | 30 ++++++++++++++++--------- 4 files changed, 97 insertions(+), 18 deletions(-) create mode 100644 2-Babel/ReadMe.txt diff --git a/2-Babel/ReadMe.txt b/2-Babel/ReadMe.txt new file mode 100644 index 00000000..4dcd449c --- /dev/null +++ b/2-Babel/ReadMe.txt @@ -0,0 +1,38 @@ +Домашнее задание: +При помощи Babel запустить проект в Firefox и IE10 + + +Write your own plugin which will convert all true +values to the false. +Ex.: +var q = true; => var q = false; +if (a==true) => if (a===false) + +astexplorer.net + + + +Дом задание 2: +сделать плагин, который удаляет все вхождения console.log(); + + + + +Ну там в домашке 3 задания - на 3 звезды прикрутить babel, на 4 сделать поддержку ie10, на 5 - написать плагин + +это три разных или это части одного задания + + + + + +если прикрутил babel оценка 3 + +добавил ie10 - 4 + +написал плагин 5 + + + + +заюзал async/await - 5+++ \ No newline at end of file diff --git a/2-Babel/index.html b/2-Babel/index.html index 5dd7edbe..a46cf14f 100644 --- a/2-Babel/index.html +++ b/2-Babel/index.html @@ -3,6 +3,7 @@ News API + diff --git a/2-Babel/script-compiled.js b/2-Babel/script-compiled.js index 2816d2be..1cd4c69a 100644 --- a/2-Babel/script-compiled.js +++ b/2-Babel/script-compiled.js @@ -1,5 +1,33 @@ 'use strict'; +// Async/Await - задание СЃРѕ звёздочкой +var readSourceArray = function () { + var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return sources; + + case 2: + return _context.abrupt('return', _context.sent); + + case 3: + case 'end': + return _context.stop(); + } + } + }, _callee, this); + })); + + return function readSourceArray() { + return _ref.apply(this, arguments); + }; +}(); + +function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } + var sources = [{ name: 'Google News', logo: 'https://upload.wikimedia.org/wikipedia/commons/thumb/8/8e/Google_News_Logo.svg/1200px-Google_News_Logo.svg.png', @@ -23,15 +51,17 @@ fetch(req).then(function (response) {}); function loadSources() { var buttons = document.querySelector('.buttons'); - sources.forEach(function (source) { - var button = document.createElement('div'); - button.classList.add('source'); - button.classList.add(source.link); - button.innerHTML = '\n ' + source.name + '\n
'; - button.addEventListener('click', function () { - return loadNews(source.link); + readSourceArray().then(function (sources) { + sources.forEach(function (source) { + var button = document.createElement('div'); + button.classList.add('source'); + button.classList.add(source.link); + button.innerHTML = '\n ' + source.name + '\n
'; + button.addEventListener('click', function () { + return loadNews(source.link); + }); + buttons.appendChild(button); }); - buttons.appendChild(button); }); } diff --git a/2-Babel/script.js b/2-Babel/script.js index 6be321e9..2c8cf0a7 100644 --- a/2-Babel/script.js +++ b/2-Babel/script.js @@ -28,20 +28,30 @@ fetch(req) }) +// Async/Await - задание со звёздочкой +async function readSourceArray(){ + return await sources; +} + + function loadSources() { let buttons = document.querySelector('.buttons'); - sources.forEach( source => { - let button = document.createElement('div'); - button.classList.add('source'); - button.classList.add(source.link); - button.innerHTML = ` - ${source.name} -
`; - button.addEventListener('click', () => loadNews(source.link) ); - buttons.appendChild(button); - }); + readSourceArray().then( + (sources => { + sources.forEach( source => { + let button = document.createElement('div'); + button.classList.add('source'); + button.classList.add(source.link); + button.innerHTML = ` + ${source.name} +
`; + button.addEventListener('click', () => loadNews(source.link) ); + buttons.appendChild(button); + }); + }) + ) } document.addEventListener("DOMContentLoaded", loadSources);