1. Promise的含义
1.对象的状态不受外界影响
- 三种状态:- pending (进行中)- fulfilled (已成功)-rejected (已失败)
2.一旦状态改变,就不会在变,任何时候都可以得到这个结果。
- 两种可能- pending -> fulfilled- pending -> rejected只要两种情况发生,状态就凝固了,不会再变了会一直报纸这种结果!
2. 基本用法
ES6规定,Promise是一个构造函数,用来生成Promise实例。
const promise = new Promiase(function(resolve,reject){
//...somecode
var a = 10;
if(a){
resolve(\'成功\')
}else{
reject(\'失败\')
}
})
上面实例生成以后,可以用then方法分别指定resolved状态和rejected状态的回调函数
promise.then(function(value){
//success
console.log(value)//->成功
},function(error){
//failure
console.log(error)//->失败
})
- promise.then(函数1,函数2/可选)- 函数1:function(resolve){};成功的值resolve- 函数2:function(error){};失败的值 error也可以:Promise.then(function(vlaue){}).catch(function(error){//捕捉错误})
一般来说,调用resolve或reject以后,Promise 的使命就完成了,后继操作应该放到then方法里面,而不应该直接写在resolve或reject的后面。所以,最好在它们前面加上return语句,这样就不会有意外。
new Promise((resolve, reject) => {
return resolve(1);
// 后面的语句不会执行
console.log(2);
})
let state = 1;
function step1(resolve,reject){
console.log(\'开始1\')
if(state == 1){
resolve(\'开始1完成\')
}else{
reject(\'开始1失败\')
}
}
function step2(resolve,reject){
console.log(\'开始2\')
if(state == 1){
resolve(\'开始2成功\')
}else{
reject(\'开始2失败\')
}
}
function step3(resolve,reject){
console.log(\'开始3\')
if(state == 1){
resolve(\'开始3成功\')
}else{
reject(\'开始3失败\')
}
}
//调用Promise
new promise(step1).then(function(val){
console.log(val);
return new Promise(stem2);
})
.then(function(val){
console.log(val)
return new Promise(stem3)
})
.then(function(val){
console.log(val);
return val;
})
.catch(function(error){
console.log(error);
})
继续阅读与本文标签相同的文章
-
觉非科技:专注于提供自动驾驶决策地图与服务
2026-05-18栏目: 教程
-
五大常用算法:回溯法
2026-05-18栏目: 教程
-
家电运输物流管理信息软件
2026-05-18栏目: 教程
-
Windows 10累积更新导致经典版Edge无法打开 微软承诺月底前修复
2026-05-18栏目: 教程
-
云南移动与昆船集团5G项目又有新进展,亮相瑞士第十届全球移动宽带论坛
2026-05-18栏目: 教程
