promise的好处可以减少异步操作中嵌套层级的数量,避免回调地狱也使得代码更加简洁代码易于维护
下面是一个promise实例的基本写法
new Promise(function (resolve,reject) {
//异步操作
resolve();//处理成功
reject();//处理失败
}).then(function A() {
//成功后下一步执行
},function B() {
//失败下一步执行
});
在promise传入的回调函数中有resolve,reject两个参数分别对应promise实例操作成功和失败。
resolve()和reject()不用展开写,最多就是传入参数。
promise实例后面的.then可以传入两个函数,分别对应处理promise实例中操作成功和失败后接下去对应的操作。
(不够具体往后慢慢补充)
11.16补充
自己写了两个promise的例子
一、直接定义:
var promise1 = new Promise(function (resolve,reject) { var num = Math.random(0,1)*10 if(num > 5) { resolve(num) }else{ reject(num) } }) function test_promise () { promise1.then(res => { console.log(res,'res') }).catch(err => { console.log(err,'err') }) }
通过test_promise来调用这个promise
这样子的不知道该怎么传入参数只能自己在promise里面自己随机定义一个数来判断成功或失败回调
二、通过return的方法来实现promise
function test_promise2(n) { return new Promise(function (resolve,reject) { if(n > 5){ resolve(n) }else{ reject(n) } }) }
这样的方式直接就可以传入参数,调用的方式如下
promise.test_promise2(21).then(res => { console.log(res,'大于5') }).catch(err => { console.log(err,'小于5') })
大于5执行成功的回调,小于5执行失败的回调