promise对象的基本用法
promise 是异步编程的解决方案,他简单来说就是一个容器 是保存着某个未来才会结束的时间(通常是异步请求)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理。
promis对象有两个特点
对象的状态不收外界影响,他代表一个异步操作,其中有三种状态pending(进行中)、fulfilled(已成功)和rejected(已失败)只有异步请求之后的结果才会决定在那个状态
一旦改变就不会在变。Promise对象的状态改变,只有两种可能:从pending变为fulfilled和从pending变为rejected。只要这两种情况发生,状态就凝固了,不会再变了,会一直保持这个结果,这时就称为 resolved(已定型)。
基本使用
他是es6 中个一个构造函数
// 1 先new出promise
const promise = new Promise(function(resolve, reject) {
// … some code
// 他有一个参数为回调函数 回调函数里面也有两个参数
// 参数一是异步操作响应结果成功
// 参数二是异步操作响应结果失败
if (/* 异步操作成功 */){
resolve(value);
// 没有参数
// resolve()
} else {
reject(error);
}
});
他有一个then方法
then方法可以接受两个回调函数作为参数。第一个回调函数是Promise对象的状态变为resolved时调用,第二个回调函数是Promise对象的状态变为rejected时调用。其中,第二个函数是可选的,不一定要提供。这两个函数都接受Promise对象传出的值作为参数。
还有好多api
request(‘http://jsonplaceholder.typicode.com/posts’)
// 成功之后执行的
.then(data => {
console.log(‘请求成功’, data)
})
// 失败后执行的
.catch(err => {
console.log(‘请求失败’, err)
})
// 无论成功或是失败都会执行
.finally(() => {
console.log(‘无论成功或是失败都会执行’)
})