1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- const delay = ms => new Promise(ok => setTimeout(() => ok(ms), ms))
- const red = document.querySelector('.red')
- const yellow = document.querySelector('.yellow')
- const green = document.querySelector('.green')
- let col = red
- // async function trafficLight(){
- // while (true){
- // changeLight(green)
- // await delay(3000)
- // changeLight(yellow)
- // await delay(2000)
- // changeLight(red)
- // await delay(3000)
- // }
- // }
- // trafficLight().then()
- function changeLight(color) {
- if(col !== color) {
- col.style.opacity = .2
- color.style.opacity = 1
- col = color
- } else {
- color.style.opacity = 1
- }
- }
- let btn = document.querySelector('.btn')
- function domEventPromise(button, eventName) {
- return new Promise(res => {
- button.addEventListener(eventName, (e) => res(e))
- button.removeEventListener(eventName, (e) => res(e))
- });
- }
- domEventPromise(btn, 'click')
- .then(e => console.log('event click happens', e))
- let stopLightIsActive = true
- async function pedestrianTrafficLight() {
- while(stopLightIsActive){
- changeLight(red)
- await delay(100)
- }
- }
- pedestrianTrafficLight().then()
- btn.addEventListener('click', async () => {
- stopLightIsActive = !stopLightIsActive
- await delay(3000)
- changeLight(yellow)
- await delay(1000)
- changeLight(green)
- await delay(4000)
- changeLight(yellow)
- await delay(1000)
- changeLight(red)
- })
- async function speedtest(getPromise, count, parallel = 1) {
- let time = performance.now();
- let promisesArr = [];
- let initParallel = parallel;
- for (let i = 0; i < count; i++) {
- promisesArr.push(getPromise);
- parallel--;
- await Promise.all(promisesArr);
- }
- time = performance.now() - time;
- return {
- duration: time,
- querySpeed: count / time,
- queryDuration: time / count,
- parallelSpeed: (count / time) * initParallel,
- parallelDuration: time / (count * initParallel),
- };
- }
- speedtest(() => delay(1000), 10, 10).then((res) =>console.log(res));
- speedtest(
- () =>
- fetch("http://swapi.dev/api/people/1").then((res) =>
- res.json()
- ),
- 2,
- 2
- ).then((v)=>console.log(v))
|