promise对象
来源:互联网 发布:数据库模型图pk 编辑:程序博客网 时间:2024/05/18 11:03
Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。
1.初识pomise
const promise = new Promise(function(resolve,reject){ console.log('我在promise'); resolve('我是promise返回的值')});执行结果:我在promise
加一条语句
console.log(promise);执行结果我在promisePromise { '我是promise返回的值' }
再加一条语句代码成为:
const promise = new Promise(function(resolve,reject){ console.log('我在promise'); resolve('我是promise返回的值')});//下面一条语句异步执行promise.then(console.log)console.log(promise);执行结果:我在promisePromise { '我是promise返回的值' }我是promise返回的值
注意到then传进去的函数异步执行了,而新建的Promise对象立即执行。
再加一些代码:
const promise = new Promise(function(resolve,reject){ console.log('我在promise'); let i = 0 resolve('我是promise返回的值'+i); i+=1; console.log(i);});//下面一条语句异步执行promise.then(console.log)console.log(promise);执行结果:我在promise1Promise { '我是promise返回的值0' }我是promise返回的值0。
上面代码说明resolve函数的异步操作,并不会影响接下来的计算。参数传递也是传值。
2.promise的方法
1. Promise.prototype.then(resolve, reject),函数的第一个参数为resolve函数,第二个参数为rejected函数,then函数返回一个新的promise对象,因此then函数后面可以接then函数。
let promise2 = promise.then(console.log)//Promise { <pending> }
- Promise.prototype.catch(reject);相当于Promise.prototype.then(null, reject)
et pro = new Promise(function(resolve,reject){ throw new Error('Promise1'); //resolve('ok');});pro.then((data)=>{ console.log(data); // throw new Error('Promise2');}).catch(err=>{ console.log(err);})
错误一直向下传递,catch可以捕获前面多个Promise对象的错误。但promise的状态不可逆,即如果调用resolve,就不能再被rejected捕捉到哦!
如果pomise发出的错误没有被下面的catch捕捉到,则‘错误被promise吃掉’,即不会再运行时抛出异常。
阅读全文
0 0
- Promise对象
- Promise对象
- Promise对象
- Promise对象
- Promise对象
- Promise 对象
- Promise对象
- Promise对象
- promise对象
- es6 promise对象
- Angularjs promise对象解析
- Angularjs promise对象解析
- ES6 Promise 对象
- ES6 Promise对象
- Angularjs promise对象解析
- promise对象学习
- Angularjs promise对象解析
- Angularjs promise对象解析
- optionc:if选定。和单选选定
- web.xml中的servlet和filter,url-pattern设置
- mysql主从复制配置
- Runloop
- Python 串口读写实现
- promise对象
- 前端小技巧(二):评分效果css版
- MUI——设置沉浸式状态栏
- 进程概念及应用
- logback
- 初学Java-GUI界面
- Exception: "dot" not found in path.
- eventBus的使用
- java.lang包