微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

promise理论

// 回调函数 被其他 函数嵌套使用的函数 (把函数当做一个参数传递给其他函数 并且执行) // 很多回调函数嵌套 ===> 回调地狱 // 回调函数噩梦(恐怖回调),也被称为恶魔金字塔,指如ajax依赖调用时,回调函数会层层嵌套,而这种层层嵌套的写法,往往会让人难以理解,所以称之为噩梦     // Promise 异步 => 同步操作 // Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大   // 让代码更加简洁明了 后期更好的维护迭代   // 所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果   // 从语法上说,Promise 是一个对象,从它可以获取异步操作的消息   // Promise 的状态 // pedding 进行中 // fulfilled 已成功 resolve // rejected 已失败   // Promise对象有以下两个特点 // 1. 对象的状态不受外界影响 Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败) // 2. 一旦状态改变,就不会再变,任何时候都可以得到这个结果 // a. pedding => fulfilled => resolve 成功 // b. pedding => rejected => reject 失败   // 只要这两种情况发生,状态就凝固了,不会再变了,会一直保持这个结果,这时就称为 resolved // Promise 构造函数 // var p = new Promise() // error 必须传递参数 成功失败结果     // 注:可以把Promise看成是状态机,当该Promise对象创建出来之后,其状态就是进行中pedding, // 然后通过程序来控制到底是执行已完成,还是执行已失败。因为Promise处理的是异步任务, // 所以我们还得对Promise做监听,当Promise的状态发生变化时,我们要执行相应的函数(then) 或者执行失败的函数(catch)   // resolve 成功回调 // reject 失败回调 // 函数 => 容器 => 存放执行某些异步事件的代码 => 异步操作   // 回调函数 页面加载会立即执行   // Promise 实例对象 有 then 方法 then方法是定义在原型对象 (prototype) // p.then(callback1,callback2) 作用是为 Promise 实例添加状态改变时候的回调 // 当Promise 实例的状态 由 pedding(进行中) 改为 fulfilled(已成功) 则执行回调 callback1 // 当Promise 实例的状态 由 pedding(进行中) 改为 rejected(已成功) 则执行回调 callback2   // callback1 callback2 都是一个形式参数 p.then(success,Failed) 接收Promise实例里面返回的数据 // callback1 可接收 resolve // callback2 错误回调 可接收 reject 以抛错的形式传递数据 // callback2 接收 Promise 代码执行的语法错误 a = 100 ; key:key   // 总结 Promise 是异步编程 没有改变异步的本质 而是通过封装回调resolve reject 把代码修改的更像同步函数

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐