JS中promise对象的作用与使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS中promise对象的作用与使用相关的知识,希望对你有一定的参考价值。
参考技术A promise的作用:ajax是异步请求,多层嵌套会造成回调地狱,promise模拟同步,将异步回调类似于同步来处理业务逻辑。var p = new Promise(function()
//这里用于处理异步的回调
),必传回调函数,不传程序会抛出异常。
创建实例对象时,回调函数会立即执行。
promise的三种状态:
pending:正在进行状态
fulfilled:完成状态
rejected:失败状态
传参1 resolve,是个函数,只要这个函数执行了说明是成功状态,参数2选传,rejecte,是个函数,这个函数执行了说明是失败状态。这两个只能执行一个,变化不可逆。
promise两种结果:
从进行到失败
从进行到成功
通过rejecte(data)h或者resolve(data)将异步响应的数据提取出来,在promise外部使用。
promise的then方法,用于处理成功或者失败的回调。
//接收上面的回调
var p1 =p.then(function(res)
)。执行后返回一个promise对象,但和p不是同一个对象。当p1执行了并且return出res,就可以连缀
p1=p.then(function(res)
return res
).then(function(data)
//处理成功回调
).catch(function()
//处理失败回调
)
可以简写p.then(function(res)
//处理成功信息
,function(err)
//处理异常信息
)。但一般不这样写。
使用案例如下,
promise的then方法是异步方法,但会优先于定时器执行。
js-20170830-Promise对象
1. 简介
Promise 对象是 CommonJS 工作组提出的一种规范,目的是为异步操作提供统一接口.
首先,它是一个对象,其次,它起到代理作用(proxy),充当异步操作与回调函数之间的中介。
简单说,它的思想是,每一个异步任务立刻返回一个Promise对象,由于是立刻返回,所以可以采用同步操作的流程。这个Promises对象有一个then方法,允许指定回调函数,在异步任务完成后调用。
2. Promise接口
Promise对象只有三种状态。
异步操作“未完成”(pending)
异步操作“已完成”(resolved,又称fulfilled)
异步操作“失败”(rejected)
这三种的状态的变化途径只有两种。
异步操作从“未完成”到“已完成”
异步操作从“未完成”到“失败”。
这种变化只能发生一次,一旦当前状态变为“已完成”或“失败”,就意味着不会再有新的状态变化了。因此,Promise对象的最终结果只有两种。
异步操作成功,Promise对象传回一个值,状态变为resolved。
异步操作失败,Promise对象抛出一个错误,状态变为rejected。
3. Promise对象的生成
ES6提供了原生的Promise构造函数,用来生成Promise实例。
下面代码创造了一个Promise实例。
var promise = new Promise(function(resolve, reject) {
// 异步操作的代码
if (/* 异步操作成功 */){
resolve(value);
} else {
reject(error);
}
});
以上是关于JS中promise对象的作用与使用的主要内容,如果未能解决你的问题,请参考以下文章