1.es6原生提供了promise对象。它就是个js对象new一下生成一个实例,有多个方法可以使用
2.promise也是javascript异步编程的一种解决方案,主要为了解决异步操作中多层回调的问题
传统的异步解决方案是,回调,或是事件监听这种方式很容易变成多层的回调嵌套,也就是回调地狱,这就是promise是什么和它的目的
promise有三个状态:
pending:初始状态、等待中
resolved:已成功;rejected:以失败
什么意思呢?很简单以ajax为例
pending,就是异步还未返回结果,正在进行或等待中
等什么呢?等服务端返回结果呢
resolved,就是ajax成功;rejected,就是ajax失败
接下来,
每个promise都有一个.then方法
它就是promise返回结果后,被执行的回调函数
它接收两个函数作为参数
第一个是,resolved,成功
第二个是,rejected,失败
new Promise(function(resolve,reject){
//异步操作,例如ajax、setTimeout等
}).then((res)=>{
//成功
console.log(res)
},(err)=>{
//失败
console.log(err)
})
接下来,
咱们动手实现下个promise实例demo
先来个简单的
只是创建一个promis对象的实例
并调用一个.then的方法
//简单的demo实例
new Promise((resolve,reject)=>{
setTimeout(()=>{
resolve('我是xxx,xxx123')
},2000)
}).then((data)=>{
//成功
console.log(data);
},(err)=>{
//失败
console.log(err)
})