promise是什么
promise本质上是一个对象,表示一个函数的执行结果或者说执行状态,共有3种状态:
pending:待定(等待)
fulfilled: 已兑现(成功)
rejected:拒绝(失败)
promise作用
1. 解决异步操作中的“回调地狱”问题,即避免了在函数传参中嵌套传入多层函数导致的代码阅读困难
2. 使得异步函数也有一个返回值,也就是返回一个promise对象,代表了函数未来执行的结果
用法
// 声明一个函数,接收一些配置参数和两个函数参数,一个在函数成功后调用,一个在函数失败后调用
function fun(settings, success, failure){
// TODO
}
// 声明两个函数,分别执行在fun成功或失败后的逻辑
function success(){
console.log("成功");
}
function failure(){
console.log("失败");
}
// 不使用Promise方法:
fun(settings,success(a,b,c),failure());
//使用Promise方法
// 先将函数fun绑定到一个Promise对象上
function fun(setting){
return new Promise((resolve, reject)=>{
// TODO
if(error){
reject(reason); //将promise转换成失败状态
}
else{
resolve(value); //将promise转换成成功状态
}
})
}
function fun(setting).then(success()).catch(failure())