//同步和异步//先执行同步代码 注意new Promise () 它处于一个准备中的状态 都是同步代码 ,产生promise对象后的then 返回成功或者失败的状态 异步代码// 这样就很容易的理解了 打印的结果就是 124 3//=========================================例子1=========================================const promise = new Promise((resolve, reject) => { console.log(1); resolve(1); console.log(2)})promise.then(() => { console.log(3)})console.log(4);//==========================================例子2=========================================//===========1. Promise.resolve(1)的then方法假如没有返回错误的 信息,后面又接了 一个catch 的方法,将会跳过该代码,继续往后执行=====================let p = Promise.resolve(1).then((res) => { console.log(res) // return 2; }).catch((err) => { return 3 }).then(res => { console.log(res) }) //这个返回错误信息会执行catchlet p1 = Promise.resolve(1).then((res) => { // return 一个异常 就会执行错误的catch 方法 return new Promise((resolve, reject) => { throw new Error('error msg') }); }).catch((err) => { return 3 //值得注意的是 这个p1 打印出来是一个promise对象 同时返回一个fullfilled 的状态 值是3 你可以将return 3 看出 Promise.resolve(3) 假如我在catch 的方法什么都没有返回 打印 打印出来是一个promise对象 同时返回一个fullfilled 的状态 值是undenfined; }) //==========2.假如Promise.resolve(1)的then链式编程中的then过程中 没有return,这个1 会往后传递,但是只传给第一个,后面的then 就是undefined,假如中间有一个return value 会往后传递,但是只传给他自己后面那个then====Promise.resolve(1).then((res) => { console.log(res); //1}).then((res) => { console.log(res); // undefined}).then((res) => { console.log(res); //undefined})Promise.resolve(1).then((res) => { console.log(res); //1}).then((res) => { console.log(res); // undefined return 2}).then((res) => { console.log(res); //2})// 详细请参考 promsieA+ https://promisesaplus.com///==================3.Promise.resolve(1)的then链式编程中的then过程中 ====================Promise.resolve(1).then(2).then(Promise.resolve(3)).then(console.log)//如果链式编程中的then里面不是函数 就默认返回一个函数给他 就变成下面Promise.resolve(1).then(value=> value).then(value=> value).then(value=> value)////finally方法里面的操作,与状态无关的,不依赖于 Promise 的执行结果,直接可以无视这行代码Promise.resolve(2).finally(() => 3).then(res => { console.log(res) }) //============================================例子3===================================================================