Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。ES6新特性利用Promise解决JS异步执行时候回调函数嵌套回调函数的问题,更简洁地控制函数执行流程。
本文只是简单的分享一下学习过程中的心得,具体的内容推荐阅读阮一峰老师的博客 点我跳转
js延时对象Promise
创建一个延时对象
通过new实例化Promise,构造函数需要两个参数,第一个参数为函数执行成功以后执行的函数resolve,第二个函数为函数执行失败以后执行的函数reject。
- new Promise 的时候会立刻执行回调函数
- resolve()–解决当Promise 对象中异步任务成功时触发成功的回调
- reject()–解决任务失败时的回调
举一个简单的小例子:
1 | var p =new Promise(function(resolve,reject){ |
踩坑,注意Promise的状态
Promise 在创建时,没有状态的,通过resolve可以改变为成功,通过reject改变为失败,
Promise状态一旦确定了之后,就不能再做任何修改了
then() 设置Promise 对象,第一个参数为任务成功时回调,第二个是失败时回调
方法一(使用then())
1 | p.then(function(div){ |
方法二(使用catch())
1 | //catch() 设置任务失败时回调 |
以上只是Promise的一些基础知识, 还有一些其他的知识点, 因为能力有限不一一介绍了