From 810486fb6d1b9d6d8d6d94b5b2ed48c3488944f3 Mon Sep 17 00:00:00 2001 From: Sergey Kostikov Date: Thu, 12 Jul 2018 10:46:23 +0300 Subject: [PATCH 1/4] homework-13 --- js-core/homeworks/homework-13/index.html | 11 +++ js-core/homeworks/homework-13/src/main.js | 115 ++++++++++++++++++++++ 2 files changed, 126 insertions(+) create mode 100644 js-core/homeworks/homework-13/index.html create mode 100644 js-core/homeworks/homework-13/src/main.js diff --git a/js-core/homeworks/homework-13/index.html b/js-core/homeworks/homework-13/index.html new file mode 100644 index 0000000..6e418d2 --- /dev/null +++ b/js-core/homeworks/homework-13/index.html @@ -0,0 +1,11 @@ + + + + + Home work 1 + + + + + + \ No newline at end of file diff --git a/js-core/homeworks/homework-13/src/main.js b/js-core/homeworks/homework-13/src/main.js new file mode 100644 index 0000000..4026860 --- /dev/null +++ b/js-core/homeworks/homework-13/src/main.js @@ -0,0 +1,115 @@ +/* + * TASK - 2 + * + * Перепишите Homework 12 - TASK 1 используя class + * + * */ +class Human { + constructor(options) { + this.name = options.name; + this.age = options.age; + this.sex = options.sex; + this.heigth = options.heigth; + this.weigth = options.weigth; + } +} + +class Worker extends Human { + constructor(options) { + super(options); + this.workPlace = options.workPlace; + this.salary = options.salary; + this.work = () => console.log(`Job's done!`); + } +} + +class Student extends Human { + constructor(options) { + super(options); + this.school = options.school; + this.grant = options.grant; + this.watchFilms = () => console.log(`Nice one!`); + } +} + +let worker = new Worker({ + name: "Ork Slave", + age: 30, + sex: "male", + heigth: 180, + weigth: 100, + workPlace: "forest", + salary: "food" +}); +worker.work() + +let student = new Student({ + name: "Ork Student", + age: 20, + sex: "female", + heigth: 170, + weigth: 70, + school: "Orgrimar Higth School", + grant: "food" +}); +student.watchFilms() + +/* + * Вы должны создать имитацию медленной базы данных. + * TASK - 1 Сделайте Класс Database с методами + * + * query + * + * При запуске метода query запустите внутренний таймаут, который будет длиться 5 секунд. + * При поступлении еще 1 запроса(если вызвать метод еще раз), + * таймаут должен стартануть сначала + * и ответ должен прийти снова через 5 секунд + * + * */ + +class DataBase { + constructor() { + this.interval = 0; + this.query = function() { + let counter = 5; + if (this.interval > 0) { + clearInterval(this.interval); + } + let interval = setInterval(() => { + this.interval = interval; + console.log(counter); + counter--; + if (counter == 0) { + clearInterval(interval); + console.log("The web server is down"); + } + }, 1000); + }; + } +} + +const dataBase = new DataBase(); +dataBase.query(); +// // 5 +// // 4 +// // 3 +// // 2 +// // 1 +// // console.log('The web server is down') https://www.youtube.com/watch?v=W8_Kfjo3VjU + +// dataBase.query(); +// // 5 +// // 4 +// dataBase.query(); +// // 5 +// // 4 +// // 3 +// // 2 +// dataBase.query(); + +// 5 +// 4 +// 3 +// 2 +// 1 +// console.log('The web server is down') From 10ce4b5764ecaf67d2301c9022ec3ac318025a48 Mon Sep 17 00:00:00 2001 From: Sergey Kostikov Date: Thu, 12 Jul 2018 13:03:00 +0300 Subject: [PATCH 2/4] make this.interval private let interval --- js-core/homeworks/homework-13/src/main.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/js-core/homeworks/homework-13/src/main.js b/js-core/homeworks/homework-13/src/main.js index 4026860..adf3c8d 100644 --- a/js-core/homeworks/homework-13/src/main.js +++ b/js-core/homeworks/homework-13/src/main.js @@ -69,7 +69,7 @@ student.watchFilms() class DataBase { constructor() { - this.interval = 0; + let interval = 0; this.query = function() { let counter = 5; if (this.interval > 0) { @@ -113,3 +113,7 @@ dataBase.query(); // 2 // 1 // console.log('The web server is down') + + + + From 79e5e51e9618f102b99940c8ec4d71145017372c Mon Sep 17 00:00:00 2001 From: Sergey Kostikov Date: Thu, 12 Jul 2018 15:20:54 +0300 Subject: [PATCH 3/4] refactor --- js-core/homeworks/homework-13/src/main.js | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/js-core/homeworks/homework-13/src/main.js b/js-core/homeworks/homework-13/src/main.js index adf3c8d..75c36af 100644 --- a/js-core/homeworks/homework-13/src/main.js +++ b/js-core/homeworks/homework-13/src/main.js @@ -41,7 +41,7 @@ let worker = new Worker({ workPlace: "forest", salary: "food" }); -worker.work() +worker.work(); let student = new Student({ name: "Ork Student", @@ -52,7 +52,7 @@ let student = new Student({ school: "Orgrimar Higth School", grant: "food" }); -student.watchFilms() +student.watchFilms(); /* * Вы должны создать имитацию медленной базы данных. @@ -70,15 +70,17 @@ student.watchFilms() class DataBase { constructor() { let interval = 0; - this.query = function() { + this.query = () => { let counter = 5; if (this.interval > 0) { clearInterval(this.interval); } + let interval = setInterval(() => { this.interval = interval; console.log(counter); counter--; + if (counter == 0) { clearInterval(interval); console.log("The web server is down"); @@ -113,7 +115,3 @@ dataBase.query(); // 2 // 1 // console.log('The web server is down') - - - - From e9e0a3658c382f3dcc313a134333814e6b6a9dd4 Mon Sep 17 00:00:00 2001 From: Sergey Kostikov Date: Mon, 16 Jul 2018 10:07:07 +0300 Subject: [PATCH 4/4] refactoring --- js-core/homeworks/homework-13/src/main.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/js-core/homeworks/homework-13/src/main.js b/js-core/homeworks/homework-13/src/main.js index 75c36af..0bfee46 100644 --- a/js-core/homeworks/homework-13/src/main.js +++ b/js-core/homeworks/homework-13/src/main.js @@ -19,7 +19,9 @@ class Worker extends Human { super(options); this.workPlace = options.workPlace; this.salary = options.salary; - this.work = () => console.log(`Job's done!`); + } + work(){ + console.log(`Job's done!`); } } @@ -28,7 +30,9 @@ class Student extends Human { super(options); this.school = options.school; this.grant = options.grant; - this.watchFilms = () => console.log(`Nice one!`); + } + watchFilms(){ + console.log(`Nice one!`); } }