1、什么是Promise
Promise 即为一个Es6新增的一个解决异步的方案,译为承诺,在Promise没出现之前,我们获取接口返回的数据都是通过回调函数的方式进行返回,这样造成的后果就是,当我们后期项目比较大的时候,会造成代码堵塞,不易理解,臃肿,难以维护。慢慢就会造成回调地狱的出现。
所谓回调地狱:
doSomething(function(result) {
doSomethingElse(result, function(newResult) {
doThirdThing(newResult, function(finalResult) {
console.log('得到最终结果: ' + finalResult);
}, failureCallback);
}, failureCallback);
}, failureCallback);
阅读回调地狱代码属实头疼,难以接受。。。。。
现可通过Promise来解决这个问题
doSomething().then(function(result) {
return doSomethingElse(result);
})
.then(function(newResult) {
return doThirdThing(newResult);
})
.then(function(finalResult) {
console.log('得到最终结果: ' + finalResult);
})
.catch(failureCallback);
通过Promise的链式调用 瞬间感觉到了代码的清晰易懂程度
- Promise链式调用一下就降低了代码编译的难度
- 代码可读程性明显增强
Promise 有三种状态
- peding 进行中
- resolve 成功的回调
- reject 失败的回调
特点
- 对象的状态不受外界影响,只有异步操作的结果,可以决定当前是哪一种状态
- 一旦状态改变(从
pending变为fulfilled和从pending变为rejected),就不会再变,任何时候都可以得到这个结果

2、用法
Promise对象是一个构造函数,可以声明一个变量来进行创建实例

Promise构造函数接受一个函数作为参数,该函数的两个参数分别是resolve和reject
resolve函数的作用是,将Promise对象的状态从“未完成”变为“成功”reject函数的作用是,将Promise对象的状态从“未完成”变为“失败”
Promise构建出来的实例存在以下方法:
- then() //成功的回调
- catch() //失败的回调
- finally() //指定不管 Promise 对象最后状态如何,都会执行的操作
Promise是ES6引入的一种解决异步编程问题的新方法,避免了回调地狱的出现。它有三种状态:pending、fulfilled和rejected。Promise对象通过链式调用then()、catch()和finally()方法,使得异步操作更加清晰易读。当状态改变后不会再次变化,确保了结果的确定性。使用Promise,可以显著提高代码的可读性和维护性。
7145

被折叠的 条评论
为什么被折叠?



