是es6的新增语法,用来解决异步问题,接口套接口的回调地狱问题。还不知道如何上传思维导图,所以只好截图一下了
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
上传不了思维图,大家见谅
总结: 语法总结: 1、promise的参数是一个回调函数,回调函数中有有俩个参数分别是 resolve,reject。 这两个参数一般用来处理异步的结果,可以用settimeout模拟出来 resolve异步成功,一般拿到返回结果,在then中处理或赋值给变量存起来 reject表示失败,这里可以用throw errror抛出一个异常提示 2、promise的对象将异步结果保存后 需要使用第一个.then来获取结果resolve函数的返回结果 .catch 获取reject返回结果 。当然我们也可以在第一个.then中的第二个回调函数获得reject返回的结果(以上问题可以查看代码) 3、promise还可以使用第二个.then是第一个.then的回调函数,这里既可以继续处理其他逻辑(个人感觉有些马后炮的意思所以不经常使用,所以出现的概率有点低)
以上部分内容来自网络资源。