// finally 没有参数 表示不是最终的意思
// 而是无论如何都会执行的意思
// 如果返回一个promise 会等待这个promise也执行完毕。 如果是失败的promise原因传给下一个人。
import { resolve } from "dns";
Promise.resolve(123456).finally(()=>{
console.log('finally');
return new Promise((resolve,reject)=>{
setTimeout(()=>{
resolve('ok');
},3000);
});
}).then(data=>{
console.log(data,'success')
}).catch(err=>{
console.log(err,'fail');
})
Promise.prototype.finally=function (callback){
return this.then((value)=>{
return Promise.resolve(callback()).then(()=>value);
},(reason)=>{
return Promise.resolve(callback()).then(()=>{throw reason});
})
}