|
@@ -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("失败了");
|
|
|
+})
|
|
|
+
|