Browse Source

fix:day24

e 1 year ago
parent
commit
9be4e7676c
2 changed files with 136 additions and 0 deletions
  1. 11 0
      day24/html/5.promise.html
  2. 125 0
      day24/js/5.promise.js

+ 11 - 0
day24/html/5.promise.html

@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Document</title>
+</head>
+<body>
+    <script src="../js/5.promise.js"></script>
+</body>
+</html>

+ 125 - 0
day24/js/5.promise.js

@@ -0,0 +1,125 @@
+/**
+ * js是单线程语言,弱类型类型
+ */
+/**同步
+ * 代码自上而下一行一行的执行 且执行完才会去执行下一行代码
+*/
+var a = 10;
+console.log(a,'a');
+var b = 20;
+console.log(b,'b');
+/**异步:setTimeOut setInterval、Promise、事件 */
+// setInterval(()=>{
+//     console.log("这个事件");
+// },1000)
+/**回调函数:同步或者异步
+ * 定义:一个函数(A)作为实参传给另一个函数(B),并在B中被调用,则为回调函数
+ */
+const test1 = () => {
+    document.write("hello")
+}
+setTimeout(test1,1000);
+/**回调地狱 */
+// setTimeout(()=>{
+//     console.log(2);
+//     setTimeout(()=>{
+//         console.log(1);
+//         setTimeout(()=>{
+//             console.log(3);
+//         },1000)
+//     },1000)
+// },1000)
+
+/**
+ * Promise 异步编程 
+ * 将异步的操作 用同步的流程表达出来
+ * 三种状态: pending 进行中
+ *           reject  已失败
+ *           resolve/fulfilled 已成功 
+ * 
+ */
+/**第一种 */
+// new Promise((resolve,reject) => {
+//     // resolve 成功时调用
+//     // reject  失败时调用
+//     setTimeout(()=>{
+//         console.log(4);
+//         // 只会调用第一个方法 后续则不生效
+//         resolve();
+//         reject();
+//     },1000)
+// }).then(()=> {
+//     console.log("成功")
+// }).catch(()=>{
+//     console.log("失败")
+// })
+/**第二种 */
+// let back = new Promise((resolve,reject)=>{
+//     setTimeout(()=>{
+//         console.log(5)
+//         resolve();
+//     },1000)
+// })
+// back.then(()=>{
+//     console.log("111")
+// })
+// back.catch(()=>{
+//     console.log("222")
+// })
+var newPromise = new Promise((resolve,reject)=>{reject()})
+newPromise.then(()=>{
+    console.log(newPromise,"输出")
+})
+newPromise.catch(()=>{
+    console.log(newPromise,"catch")
+})
+
+// new Promise((resolve,reject) => {
+//     setTimeout(()=>{
+//         console.log(1);
+//         resolve();
+//     },1000)
+// }).then(()=>{
+//     new Promise(()=>{
+
+//     })
+// }).catch(()=>{
+
+// })
+
+let p1 = new Promise((resolve,reject)=>{
+    setTimeout(()=>{
+        console.log(1);
+        reject();
+    },1000)
+})
+let p2 = new Promise((resolve,reject)=>{
+    setTimeout(()=>{
+        console.log(2);
+        reject();
+    },1200)
+})
+let p3 = new Promise((resolve,reject)=>{
+    setTimeout(()=>{
+        console.log(3);
+        resolve();
+    },800)
+})
+/**
+ * Promise.all判断多个promise 
+ * 当传入的都成功 则成功
+ */
+// Promise.all([p1,p2,p3]).then(()=>{
+//     console.log("成功了");
+// }).catch(()=>{
+//     console.log("失败了");
+// })
+/**
+ * Promise.race 第一个执行的成功则成功
+ */
+Promise.race([p1,p2,p3]).then(()=>{
+    console.log("成功了");
+}).catch(()=>{
+    console.log("失败了");
+})
+