123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- /**
- * 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("失败了");
- })
|