promise常见问题整理,以及一些基本API使用方法。

103 阅读2分钟

是es6的新增语法,用来解决异步问题,接口套接口的回调地狱问题。还不知道如何上传思维导图,所以只好截图一下了

promise-01.png

1.基本使用语法:

const a = 2;
                        const  p = new Promise(function (resolve, reject) {
                            if ('异步请求成功') {
                                resolve('成功的结果')
                            } else {
                                reject('失败的结果')
                            }
                        });
                        p.then(
                            function (res1) {
                                console.log(res1)    // 成功resolve promise 的第一个then中的第一个函数来处理,如果异步是失败的,控制台打印会报错,需要使用catch处理
                            },
                            //可以写俩个函数
                            function(res2){
                                console.log(res2);//then的第二个函数也可以用来接受reject的返回值   2
                            }
                        ).catch(function (error) {//必须写
                            // 捕获错误
                            if (error) {
                                console.log(error)
                            }
                        }).
                            then(function (er) {//第二个then是第一个then结束后的回调函数
                                // 第一个then 处理结束后的回调函数
                                console.log('处理完成')
                            })
                    // 获得reject 的结果 使用catch   then 也是可以捕获的,但是会报错,这里一定要注意,then和catch最好一起连用,哪怕catch里面什么都不做也可以

2.promise的常用API

promise-03.png

上传不了思维图,大家见谅

总结: 语法总结: 1、promise的参数是一个回调函数,回调函数中有有俩个参数分别是 resolve,reject。 这两个参数一般用来处理异步的结果,可以用settimeout模拟出来 resolve异步成功,一般拿到返回结果,在then中处理或赋值给变量存起来 reject表示失败,这里可以用throw errror抛出一个异常提示 2、promise的对象将异步结果保存后 需要使用第一个.then来获取结果resolve函数的返回结果 .catch 获取reject返回结果 。当然我们也可以在第一个.then中的第二个回调函数获得reject返回的结果(以上问题可以查看代码) 3、promise还可以使用第二个.then是第一个.then的回调函数,这里既可以继续处理其他逻辑(个人感觉有些马后炮的意思所以不经常使用,所以出现的概率有点低)

以上部分内容来自网络资源。