瀏覽代碼

HW<17>done

Gennadysht 2 年之前
父節點
當前提交
2a8cede8f1
共有 3 個文件被更改,包括 38 次插入6 次删除
  1. 0 5
      js/17_async/hw17_01_chat.html
  2. 1 1
      js/17_async/hw_17_02_swapi links.html
  3. 37 0
      js/17_async/hw_17_03_domEventPromise.html

+ 0 - 5
js/17_async/hw17_01_chat.html

@@ -79,10 +79,5 @@
             sendAndCheck(nicknameInp.value, messageInp.value);
         }
         checkLoop(5000);
-
-
-
-
-
     </script>
 </body>

+ 1 - 1
js/17_async/hw_17_02_swapi links.html

@@ -60,7 +60,7 @@
             res => res
         )
         .then(
-            res => console.log(JSON.stringify(res))
+            res => console.log(JSON.stringify(res,null,4))
         );
     </script>
 </body>

+ 37 - 0
js/17_async/hw_17_03_domEventPromise.html

@@ -0,0 +1,37 @@
+<header>domEventPromise</header>
+
+<body>
+    <button id="knopka">test button</button>
+    <script>
+        function domEventPromise(element, eventName) {
+            function executor(resolve) {
+                function myOnClick(event) {
+                    element.removeEventListener(eventName, myOnClick);
+                    resolve(event);
+                }
+                element.addEventListener(eventName, myOnClick);
+            }
+            return new Promise(executor);
+        }
+
+        /*function domEventPromise1(element, eventName) {
+            return
+            new Promise(
+                function (resolveFunc) {
+                    function executor(event) {
+                        element.removeEventListener(eventName, executor);
+                        resolveFunc(event);
+                        //happy hacking
+                    }
+                    element.addEventListener(eventName, executor);
+                }
+            )
+        }*/
+        domEventPromise(knopka, 'click').then(e => console.log('event click happens', e));
+    </script>
+</body>
+
+
+используя addEventListener повесить свой обработчик события на DOM element событие eventName
+по событию зарезолвить промис отдав в качестве результата объект события
+убрать обработчик с DOM-элемента, используя removeEventListener.