123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- // trafficLightWrapp()
- function trafficLightWrapp() {
- const delay = ms => new Promise(ok => setTimeout(() => ok(ms), ms))
- async function trafficLight(parent, redTime, yellowTime, greenTime) {
- const wrapp = document.createElement('div')
- wrapp.style.width = 'max-content'
- wrapp.style.padding = '10px'
- wrapp.style.backgroundColor = '#333'
- const cell = document.createElement('div')
- cell.style.margin = '3px'
- cell.style.height = '100px'
- cell.style.width = '100px'
- cell.style.backgroundColor = '#999'
- cell.style.borderRadius = '50%'
- const red = cell.cloneNode(true)
- const yellow = cell.cloneNode(true)
- const green = cell.cloneNode(true)
- wrapp.append(red)
- wrapp.append(yellow)
- wrapp.append(green)
- parent.append(wrapp)
- turnOn = (cell, color) => {
- cell.style.backgroundColor = color
- }
- turnOff = (cell) => {
- cell.style.backgroundColor = '#999'
- }
- while (true) {
- turnOn(green, 'green')
- await delay(greenTime)
- turnOff(green)
- turnOn(yellow, 'yellow')
- await delay(yellowTime)
- turnOff(yellow)
- turnOn(red, 'red')
- await delay(redTime)
- turnOn(yellow, 'yellow')
- await delay(yellowTime)
- turnOff(yellow)
- turnOff(red)
- }
- }
- trafficLight(container1, 3000, 1000, 3000)
- }
- // domEventPromiseWrapp()
- function domEventPromiseWrapp() {
- const knopka = document.createElement('button')
- knopka.innerText = 'Кликай'
- container1.append(knopka)
-
- function domEventPromise(element, eventName) {
- return new Promise(function(resolve, reject) {
- let listener = function (event) {
- element.removeEventListener(eventName, listener)
- resolve(event)
- }
- element.addEventListener(eventName, listener)
- })
- }
- domEventPromise(knopka, 'click').then( e => console.log('event click happens', e))
- }
- pedestrianTrafficLightWrapp()
- function pedestrianTrafficLightWrapp() {
- const delay = ms => new Promise(ok => setTimeout(() => ok(ms), ms))
- async function trafficLight2(parent, redTime, greenTime) {
- const wrapp = document.createElement('div')
- wrapp.style.width = 'max-content'
- wrapp.style.padding = '10px'
- wrapp.style.backgroundColor = '#333'
- const cell = document.createElement('div')
- cell.style.margin = '3px'
- cell.style.height = '100px'
- cell.style.width = '100px'
- cell.style.backgroundColor = '#999'
- cell.style.borderRadius = '50%'
- const red = cell.cloneNode(true)
- const green = cell.cloneNode(true)
- wrapp.append(red)
- wrapp.append(green)
- parent.append(wrapp)
- turnOn = (cell, color) => {
- cell.style.backgroundColor = color
- }
- turnOff = (cell) => {
- cell.style.backgroundColor = '#999'
- }
- const knopka = document.createElement('button')
- knopka.innerText = 'ВКЛЮЧИТЬ ЗЕЛЕНЫЙ'
- container1.append(knopka)
-
- function domEventPromise(element, eventName) {
- return new Promise(function(resolve, reject) {
- let listener = function (event) {
- element.removeEventListener(eventName, listener)
- element.setAttribute("disabled", "disabled")
- delay(4000).then(() => element.removeAttribute("disabled", "disabled"))
- resolve(event)
- }
- element.addEventListener(eventName, listener)
- })
- }
-
- while (true) {
- turnOn(green, 'green')
- await delay(greenTime)
- turnOff(green)
- turnOn(red, 'red')
- await Promise.race([domEventPromise(knopka, 'click'), delay(redTime)])
- turnOff(red)
- }
- }
- trafficLight2(container1, 3000, 3000)
- }
- // speedTestWrapp()
- function speedTestWrapp() {
-
- const gql = (url, query, variables) => fetch(url, {
- method: 'POST',
- headers: {'content-type': 'application/json'},
- body: JSON.stringify({query, variables}),
- });
- (async function() {
- let response = await gql("http://shop-roles.asmer.fs.a-level.com.ua/graphql", `query cats($q:String) {
- CategoryFind(query:$q){
- name goods{
- name images{
- url
- }
- }
- }
- }`, {q: "[{}]"});
- let result = await response.json();
- })()
- async function speedtest(getPromise, count,parallel=1){
- return {
- duration,
- querySpeed, //средняя скорость одного запроса
- queryDuration, //
- parallelSpeed,
- parallelDuration
- }
- }
-
- speedtest(() => delay(1000), 10, 10 ).then(result => console.log(result))
- // {duration: 10000,
- // querySpeed: 0.001, //1 тысячная запроса за миллисекунду
- // queryDuration: 1000, //1000 миллисекунд на один реальный запрос в среднем
- // parallelSpeed: 0.01 // 100 запросов за 10000 миллисекунд
- // parallelDuration: 100 // 100 запросов за 10000 миллисекунд
- speedtest(() => fetch('http://swapi.dev/api/people/1').then(res => res.json()), 10, 5)
- }
|