ES6新增处理回调地狱的方法——promise。
处理异步操作时其实就是在处理回调地狱的问题。
promise支持链式调用(.then().then()....),可以解决回调地狱的问题。(面试题)
promise.then()方法返回的是一个promise对象。
promise的状态一旦确定就无法改变。(不是很理解是为什么)
一、promise对象属性
1.promise实例对象中有一个内置的属性[PromiseState],它对应的有三个状态:
pending:等待状态,promise初始状态
fulfuilled(resolved):成功状态,promise成功返回的值
rejected:失败状态,promise没有成功返回的值,或者出错了的状态
无论是成功还是失败,都会有一个结果数据
执行回调时,成功的结果一般为value,失败的结果一般为reason
2.promise内置的第二个属性是[PromiseResult]
这里面保存的是异步任务失败或成功的结果
保存着对象返回的成功或失败的结果
二、promise.prototype.then((onRsolved,onRjected) => { {})方法
用于指定成功的回调函数还是失败的回调函数,然后返回一个promise对象
三、try..catch方法捕捉错误
当promise返回的是一个reject时,控制台会返回一个promise对象,并且会显示一个报错。我们可以用try..catch去捕捉错误 把错误的代码放入try中,把