Browse Source

Видалити 'JS 5 Online Homework/hw18.js'

stas.vladlenko 1 year ago
parent
commit
ad720ef5ce
1 changed files with 0 additions and 240 deletions
  1. 0 240
      JS 5 Online Homework/hw18.js

+ 0 - 240
JS 5 Online Homework/hw18.js

@@ -1,240 +0,0 @@
-// Светофор =======================================================================
-
-
-const delay = ms => new Promise(ok => setTimeout(() => ok(ms), ms))
-
-async function trafficLight(){
-
-    const trafficLights = document.createElement('div')
-    document.body.appendChild(trafficLights)
-    Object.assign(document.body.style, {display: 'flex', justifyContent: 'center'})
-
-    trafficLights.innerHTML = `<img src="trafficLight/empty.png" style="width:200px">`
-    await delay(1000)
-
-    while (true){
-
-        trafficLights.innerHTML = `<img src="trafficLight/red.png" style="width:200px">`
-        await delay(3000)
-
-        trafficLights.innerHTML = `<img src="trafficLight/redYellow.png" style="width:200px">`
-        await delay(1250)
-
-        trafficLights.innerHTML = `<img src="trafficLight/green.png" style="width:200px">`
-        await delay(3000)
-
-        for (let i = 0; i < 3; i ++) {
-            trafficLights.innerHTML = `<img src="trafficLight/empty.png" style="width:200px">`
-            await delay(500)
-            trafficLights.innerHTML = `<img src="trafficLight/green.png" style="width:200px">`
-            await delay(500)
-        }
-
-        trafficLights.innerHTML = `<img src="trafficLight/yellow.png" style="width:200px">`
-        await delay(1250)
-    }
-}
-trafficLight()
-
-
-// Stage 2 =======================================================================
-
-
-const delay = ms => new Promise(ok => setTimeout(() => ok(ms), ms))
-
-async function trafficLight(parent, redTime, yellowTime, greenTime, prepare){
-
-    const trafficLights = document.createElement('div')
-    parent.appendChild(trafficLights)
-    Object.assign(document.body.style, {display: 'flex', justifyContent: 'center'})
-
-    trafficLights.innerHTML = `<img src="trafficLight/empty.png" style="width:200px">`
-    await delay(1000)
-
-    while (true){
-
-        trafficLights.innerHTML = `<img src="trafficLight/red.png" style="width:200px">`
-        await delay(redTime)
-
-        trafficLights.innerHTML = `<img src="trafficLight/redYellow.png" style="width:200px">`
-        await delay(yellowTime)
-
-        trafficLights.innerHTML = `<img src="trafficLight/green.png" style="width:200px">`
-        await delay(greenTime)
-
-        for (let i = 0; i < 3; i ++) {
-            trafficLights.innerHTML = `<img src="trafficLight/empty.png" style="width:200px">`
-            await delay(prepare)
-            trafficLights.innerHTML = `<img src="trafficLight/green.png" style="width:200px">`
-            await delay(prepare)
-        }
-
-        trafficLights.innerHTML = `<img src="trafficLight/yellow.png" style="width:200px">`
-        await delay(yellowTime)
-    }
-}
-trafficLight(document.body, 3000, 1250, 3000, 500)
-
-
-// PedestrianTrafficLight =======================================================================
-
-
-function domEventPromise (element, eventName) {
-    return new Promise ( (resolve) => {
-        const event = event => {
-            element.removeEventListener(eventName, event)
-            resolve(event)
-        }
-        element.addEventListener(eventName, event)
-    })
-}
-
-async function padestrianTrafficLight (parent, time, buttonTime) {
-
-    const trafficLights = document.createElement('div')
-    parent.appendChild(trafficLights)
-    Object.assign(document.body.style, {display: 'flex', justifyContent: 'center', flexDirection: 'column', alignItems: 'center'})
-
-    const goButton = document.createElement('button')
-    parent.appendChild(goButton)
-    goButton.innerText = 'Go!'
-    Object.assign(goButton.style, {backgroundColor: '#313131', borderRadius: '50%', width: '50px', height: '50px', color: 'white', cursor: 'pointer'})
-
-    trafficLights.innerHTML = `<img src="trafficLight/stop.png" style="width:200px">`
-
-
-
-    while (true) {
-        goButton.disabled = true
-        Object.assign(goButton.style, {borderColor:'#e50201', color: '#e50201'})
-        await delay(buttonTime)
-        goButton.disabled = false
-        Object.assign(goButton.style, {borderColor:'#bdd909', color: '#bdd909'})
-
-        await Promise.race([domEventPromise(goButton, 'click'), delay(time)])
-        trafficLights.innerHTML = `<img src="trafficLight/go.png" style="width:200px">`
-        await delay (time)
-        trafficLights.innerHTML = `<img src="trafficLight/stop.png" style="width:200px">`
-    }
-}
-
-padestrianTrafficLight(document.body, 10000, 3000) 
-
-
-// speedtest =======================================================================
-
-
-const delay = ms => new Promise(ok => setTimeout(() => ok(ms), ms))
-
-async function speedtest(getPromise, count, parallel){
-
-    const start = performance.now()
-    for (let countRepeat = 0; countRepeat < count; countRepeat ++) {
-        const promiseArray = []
-
-        for (let countPromise = 0; countPromise < parallel; countPromise ++) {
-            promiseArray.push(getPromise())
-        }
-        const result = await Promise.all(promiseArray)
-        console.log(result)
-    }
-    const duration = performance.now() - start
-    return {
-        'duration': duration,
-        'parallelDuration': duration/(count*parallel),
-        'paralledSpeed': count*parallel/duration,
-        'queryDuration': duration/count,
-        'querySpeed': (count*parallel/duration)/count
-    }
-}
-speedtest(() => fetch('http://swapi.dev/api/people/1').then(res => res.json()), 10, 5).then(result => console.log(result))
-speedtest(() => delay(1000), 10, 10 ).then(result => console.log(result))
-
-
-// gql =======================================================================
-
-
-async function gql (endpoint, query, variables) {
-
-    const querys = await fetch(endpoint,
-        {
-            method: 'POST',
-            headers: 
-            {
-                'Content-Type': 'application/json',
-                'Accept': 'application/json',
-            },
-            body: JSON.stringify(
-                {
-                    'query': query,
-                    'variables': variables,
-                }
-            )
-        }
-        )
-        .then (data => data.json())
-        return querys
-}
-
-;(async () => {
-    const catQuery = `query cats($q: String){
-                                        CategoryFind(query: $q){
-                                            _id name
-                                        }
-                                    }`
-    const cats = await gql("http://shop-roles.node.ed.asmer.org.ua/graphql",  catQuery,  {q: "[{}]"})
-    console.log(cats) //список категорий с _id name и всем таким прочим
-    
-    
-    const loginQuery = `query login($login:String, $password:String){
-                            	login(login:$login, password:$password)
-                        }`
-    
-    const token = await gql("http://shop-roles.node.ed.asmer.org.ua/graphql", loginQuery ,{login: "test457", password: "123123"})
-    console.log(token)
-})()
-
-
-// jwtDecode =======================================================================
-
-
-function jwtDecode (token) {
-
-    try {
-        const tokenArr = token.split('.')
-        const data = atob(tokenArr[1])
-        const dataObj = JSON.parse(data)
-    
-        return dataObj
-    }
-    catch {
-        return undefined
-    }
-
-}
-
-const token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOnsiaWQiOiI2MzIyMDVhZWI3NGUxZjVmMmVjMWEzMjAiLCJsb2dpbiI6InRlc3Q0NTciLCJhY2wiOlsiNjMyMjA1YWViNzRlMWY1ZjJlYzFhMzIwIiwidXNlciJdfSwiaWF0IjoxNjY4MjcyMTYzfQ.rxV1ki9G6LjT2IPWcqkMeTi_1K9sb3Si8vLB6UDAGdw"
-console.log(jwtDecode(token)) 
-//{
-//  "sub": {
-//    "id": "632205aeb74e1f5f2ec1a320",
-//    "login": "test457",
-//    "acl": [
-//      "632205aeb74e1f5f2ec1a320",
-//      "user"
-//    ]
-//  },
-//  "iat": 1668272163
-//}
-
-try {
-    console.log(jwtDecode())         //undefined
-    console.log(jwtDecode("дичь"))   //undefined
-    console.log(jwtDecode("ey.ey.ey"))   //undefined
-    
-    console.log('до сюда доработало, а значит jwtDecode не матерился в консоль красным цветом')
-}
-finally{
-    console.log('ДЗ, видимо, окончено')
-}
-