123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230 |
- // const gql = (url, query, variables={}) =>
- // fetch(url, {
- // method: 'POST',
- // body: JSON.stringify({query,variables}),
- // headers: {
- // 'Content-Type': 'application/json',
- // }
- // }).then((res) => res.json());
- // (async () => {
- // console.log(await gql(`http://shop-roles.asmer.fs.a-level.com.ua/graphql`, `query cats{
- // CategoryFind(query:"[{}]"){
- // name goods{
- // name
- // }
- // }
- // }`))
- // })()
- // const getGQL = url =>
- // (query, variables) => fetch(url, {
- // //метод
- // method: 'POST',
- // headers: {
- // //заголовок content-type
- // "Content-Type": "application/json"
- // },
- // body: JSON.stringify({query, variables})
- // //body с ключами query и variables
-
- // }).then(res => res.json()).then(
- // obj => {
- // let login = obj.data.login;
- // console.log(login);
- // if (!login) {
- // throw new Error('login undefind');
- // }
- // return login;;
- // })
-
- // //расковырять data, если все ок - отдать data.login или data.CategoryFindOne, или шо там еще
- // //если есть errors и нет data, то выбросить исключение и тем самым зареджектить промис
-
- // .catch(console.log)
- // const gql = getGQL('http://shop-roles.asmer.fs.a-level.com.ua/graphql');
- // gql(`
- // query NameForMe1($login:String, $password:String){
- // login(login:$login, password:$password)
- // }
- // `, {login: 'tst', password: '123'})
- //Task Светофор
- // const div = document.createElement('div');
- // div.id = 'trafficLights';
- // div.style.backgroundColor = 'rgb(59, 52, 52)';
- // div.style.width = '200px';
- // div.style.height = '350px';
- // const divRed = document.createElement('div');
- // divRed.id = 'red';
- // divRed.style.backgroundColor = 'rgb(232, 235, 209)';
- // divRed.style.width = '90px';
- // divRed.style.height = '90px';
- // divRed.style.marginLeft = "27%";
- // divRed.style.marginTop = "7%";
- // divRed.style.display = 'inline-block';
- // divRed.style.borderRadius = '50px';
- // const divOrange = document.createElement('div');
- // divOrange.id = 'orange';
- // divOrange.style.backgroundColor = 'rgb(232, 235, 209)';
- // divOrange.style.width = '90px';
- // divOrange.style.height = '90px';
- // divOrange.style.marginLeft = "27%";
- // divOrange.style.marginTop = "10%";
- // divOrange.style.borderRadius = '50px';
- // const divGreen = document.createElement('div');
- // divGreen.id = 'green';
- // divGreen.style.backgroundColor = 'rgb(232, 235, 209)';
- // divGreen.style.width = '90px';
- // divGreen.style.height = '90px';
- // divGreen.style.marginLeft = "27%";
- // divGreen.style.marginTop = "10%";
- // divGreen.style.borderRadius = '50px';
- // document.body.append(div);
- // div.append(divRed);
- // div.append(divOrange);
- // div.append(divGreen);
- // const delay = ms => new Promise(ok => setTimeout(() => ok(ms), ms))
- // async function trafficLight(){
- // while (true){
- // divGreen.style.backgroundColor = 'green';//включаем зеленый
- // await delay(6000);
- // divGreen.style.backgroundColor = 'rgb(232, 235, 209)';
- // divOrange.style.backgroundColor = 'rgb(237, 138, 57)';// включаем желтый
- // await delay(2000);
- // divOrange.style.backgroundColor = 'rgb(232, 235, 209)';
- // divRed.style.backgroundColor = 'rgb(235, 12, 23)'; //включаем красный
- // await delay(3500);
- // divRed.style.backgroundColor = 'rgb(232, 235, 209)';
- // }
- // }
- // trafficLight();
- //Task domEventPromise
- // const button = document.createElement('button');
- // document.body.appendChild(button).innerText = "Click";
- // function domEventPromise (knopka, eventName) {
- // return new Promise((resolve) => {
- // knopka.addEventListener(eventName, function getEvent(e) {
- // this.removeEventListener(eventName, getEvent);
- // resolve(e);
- // });
- // })
- // }
- // domEventPromise(button, 'click').then((e) => {
- // console.log('event click happens', e);
- // })
- // PedestrianTrafficLight
- // const div = document.createElement('div');
- // div.id = 'trafficLights';
- // div.style.backgroundColor = 'rgb(59, 52, 52)';
- // div.style.width = '200px';
- // div.style.height = '350px';
- // const divRed = document.createElement('div');
- // divRed.id = 'red';
- // divRed.style.backgroundColor = 'rgb(232, 235, 209)';
- // divRed.style.width = '90px';
- // divRed.style.height = '90px';
- // divRed.style.marginLeft = "27%";
- // divRed.style.marginTop = "7%";
- // divRed.style.display = 'inline-block';
- // divRed.style.borderRadius = '50px';
- // const divGreen = document.createElement('div');
- // divGreen.id = 'green';
- // divGreen.style.backgroundColor = 'rgb(232, 235, 209)';
- // divGreen.style.width = '90px';
- // divGreen.style.height = '90px';
- // divGreen.style.marginLeft = "27%";
- // divGreen.style.marginTop = "10%";
- // divGreen.style.borderRadius = '50px';
- // document.body.append(div);
- // div.append(divRed);
- // div.append(divGreen);
- // const delay = ms => new Promise(ok => setTimeout(() => ok(ms), ms))
- // const button = document.createElement('button');
- // document.body.appendChild(button).innerText = "Click";
- // button.style.marginTop = "30px";
- // function domEventPromise (knopka, eventName) {
- // return new Promise((resolve) => {
- // knopka.addEventListener(eventName, function getEvent(e) {
- // this.removeEventListener(eventName, getEvent);
- // button.setAttribute('disabled', true);
- // divRed.style.backgroundColor = 'rgb(232, 235, 209)';
- // divGreen.style.backgroundColor = 'green';
- // delay(2000).then(() => button.removeAttribute('disabled'));
- // resolve(e);
- // })
- // })
- // }
- // async function trafficLight(){
- // while (true){
- // divRed.style.backgroundColor = 'rgb(232, 235, 209)';
- // divGreen.style.backgroundColor = 'green';
- // await Promise.race([delay(2000), domEventPromise(button, 'click')]);
- // divRed.style.backgroundColor = 'rgb(235, 12, 23)';
- // divGreen.style.backgroundColor = 'rgb(232, 235, 209)';
- // await Promise.race([delay(2000), domEventPromise(button, 'click')]);
- // }
- // }
- // trafficLight();
- // Task speedtest
- const delay = ms => new Promise(ok => setTimeout(() => ok(ms), ms));
- async function speedtest(getPromise, count,parallel=1){
- let timedurationStart = performance.now();
- let arrFetch = [];
- for (let q = 0; q < parallel; q++) {
- arrFetch[q] = await getPromise();
- }
- const timeBetween = performance.now();
- for (let i = 0; i < count; i++) {
- await Promise.all(arrFetch);
- }
- let timedurationEnd = performance.now();
- return {
- duration: timedurationEnd - timedurationStart,
- querySpeed: count / (timeBetween - timedurationStart),
- queryDuration: (timeBetween - timedurationStart) / count,
- parallelSpeed: (count * parallel)/ (timedurationEnd - timedurationStart),
- parallelDuration: (timedurationEnd - timedurationStart) / (count * parallel),
- }
- }
- speedtest(() => delay(1000), 10, 10 ).then(result => console.log(result))
- speedtest(() => fetch('http://swapi.dev/api/people/1').then(res => res.json()), 10, 5).then(result => console.log(result))
|