一.先看看promise
实例化 Promise【承诺】 对象 相当于一个容器,保存着未来才会结束的事件(异步操作) 的一个结果 各种异步操作都可以用同样的方法进行处理 axios 特点: 1. 对象的状态不受外界影响,处理异步操作有三个状态:Pend(进行中)、Resolve(成功的)、Reject(失败的) 2. 一旦状态改变,就不会再变,任何时候都可以得到这个结果 3.【resovle(), reject() 可以返回成功、失败的结果】
1.我们先new一个promise对象
注意:这里我们的 promise 是对象
代码语言:javascript复制const p = new Promise(function(resolve, reject) {
setTimeout(function() {
// 成功的调用
// let data = '数据库中的用户数据';
// resolve(data);
// 失败的调用
let err = '数据读取失败';
reject(err);
}, 1000);
});
这里面的resolve是成功的调用: 调用resolve时,p就是成功,reject是失败的调用
2.then方法
注意:这里我们then 是 promise里面的一个方法
代码语言:javascript复制then方法有两个函数参数,函数有形参,成功的形参一般叫value,失败的形参叫reason。 如果已经调用了成功的方法,失败的方法就不会执行。
//调用 promise 对象的 then 方法 对状态进行回调
p.then(function(value) { // 成功的函数
console.log(value); // 数据库中的用户数据
}, function(reason) { // 失败的函数
console.error(reason); // 数据读取失败
})
3.总的看来
这里在外面传递秒数控制输出,并成功的返回 hello promise success!
代码语言:javascript复制 function timeOut(ms) {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('hello promise success!');
}, ms)
})
}
timeOut(2000).then((val) => {
console.log(val); // hello promise success!
})