promise用法
<script>
/**
* promise对象
* promise对象 代表着未来发生的事情
* 这个里面 我们主要在强调一下 异步的操作
* 因为promise对象 一般都是异步的处理方式
* aysnc false 同步的 true 异步的
* 同步 锁死的浏览器 其实并不是锁死的 只是浏览器陷入到一个阻塞的状态
* 我们要是选择使用装填 一般都会使用异步的
* promise可以将我们的异步操作 使用同步的方式表达出来
* 避免层层嵌套 回调地狱
* 在我们的es6中 promise其实是一个构造方法 返回值是一个promise对象
*
* 作用 :
* 可以处理一些超时操作
* 使用promise经常会处理一些个ajax操作
*
* 三种状态 :
* 初始化状态 pending
* 成功状态 fullfilled
* 失败状态 rejected
*
*/
// console.log(123);
// setTimeout(()=>console.log('hello'),1000);
// console.log(456)
//创建一个promise对象的结构是什么
// let promise = new Promise((resolve,reject)=>{
// //初始化的一些数据
// //判断执行状态
// if (执行成功)
// {
// resolve(value);
// }
// else
// {
// reject(value);
// }
// });
//以上的一系列操作完成了 那么对我们的程序会有什么影响呢
//一点影响都没有 只是实例化了一个对象
//如果说 我们使用的时候 如何使用
//需要使用到promise对象中的then
//then方法其实就是我们的执行过程
// promise.then(function(){
// }).then()
let promise = new Promise((resolve,reject)=>{
console.log('开始了');
//主要是进行判断 判断如果成功 使用的resolve方法
//如果要是失败了 使用的reject方法
// setTimeout(()=>{
// console.log('我才是主角');
// resolve('我才是data,主角');
// reject("我不行了");
// },3000);
let num = 2;
if (num > 3)
{
resolve('num变量是大于三的,所以说判断为true,在then方法中会调用data');
}
else
{
reject('num变量是不大于三的,所以说判断为false,在then方法中会调用error')
}
});
//在使用then方法的时候
//如果说 在promise对象中 触发的resolve方法 那么在then方法中调用的是data
//但是 如果说在promise对象中 触发的是reject方法 那么在then方法中调用的就是error
promise.then((data)=>{
console.log(data);
console.log('OK');
},(error)=>{
console.log(error);
console.log('失败了');
});
console.log("结束了");
</script>