123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- const delay = ms => new Promise(ok => setTimeout(() => ok(ms), ms));
- async function trafficLight(timeRed, timeYellow, timeGreen){
- while (true){
- green.classList.remove('active');
- red.classList.add('active');
- await delay(timeRed);
- red.classList.remove('active');
- yellow.classList.add('active');
- await delay(timeYellow);
- yellow.classList.remove('active');
- green.classList.add('active');
- await delay(timeGreen);
- }
- }
- trafficLight(3000, 1000, 3000);
- function domEventPromise(element, eventName) {
- return new Promise(function(resolve, reject) {
- element.addEventListener(eventName, (e) => resolve(e.target));
-
- element.removeEventListener(eventName, (e) => resolve(e.target));
- });
- }
- // domEventPromise(knopka, 'click')
- // .then( e => console.log('event click happens', e));
- //для пешеходов
- async function PedestrianTrafficLight(timeGreen, timeRed){
- while (true){
- red2.classList.remove('active');
- green2.classList.add('active');
- await delay(timeGreen);
- green2.classList.remove('active');
- red2.classList.add('active');
- await delay(timeRed);
- }
- }
- PedestrianTrafficLight(3500, 3500);
- function clickBtn() {
- domEventPromise(knopka, 'click')
- .then( e => {
- document.querySelectorAll('div[class*=circle]').forEach((el) => {
- el.classList.remove('active');
- })
- green2.classList.add('active');
- red.classList.add('active');
- });
- }
- setTimeout(clickBtn(), 2000);
- async function speedtest(getPromise, count,parallel = 1){
- let promiseArr = [];
- let date = new Date();
- for(let pr = 0; pr < count; pr++) {
- promiseArr[pr] = getPromise();
- await Promise.all(promiseArr);
- }
- console.log(promiseArr);
- let duration = new Date() - date;
- let querySpeed = count / duration;
- let queryDuration = duration / count;
- let parallelSpeed = parallel / duration;
- let parallelDuration = duration / parallel;
- return {
- duration: duration,
- querySpeed: querySpeed, //средняя скорость одного запроса
- queryDuration: queryDuration, //
- parallelSpeed: parallelSpeed,
- parallelDuration: 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)
|