Js Promise方法

背景

在JS异步编程中,如果想要处理异步操作返回的结果,往往会用到callback回调函数。但是如果在callback中也有异步操作,就会出现嵌套回调,过深的嵌套回调会影响代码的可读性,增加代码维护难度,所以层层嵌套的回调又被称作回调地狱。

Promise可以很好地解决回调地狱。

MDN描述

一个 Promise 对象代表一个在这个 promise 被创建出来时不一定已知的值。它让您能够把异步操作最终的成功返回值或者失败原因和相应的处理程序关联起来。 这样使得异步方法可以像同步方法那样返回值:异步方法并不会立即返回最终的值,而是会返回一个 promise,以便在未来某个时候把值交给使用者。


一个 Promise 必然处于以下几种状态之一:

  • 待定(pending): 初始状态,既没有被兑现,也没有被拒绝。
  • 已兑现(fulfilled): 意味着操作成功完成
  • 已拒绝(rejected): 意味着操作失败。

注意: 如果一个 promise 已经被兑现(fulfilled)或被拒绝(rejected),那么我们也可以说它处于已敲定(settled)状态。您还会听到一个经常跟 promise 一起使用的术语:已决议(resolved),它表示 promise 已经处于已敲定(settled)状态,或者为了匹配另一个 promise 的状态被"锁定"了。Domenic Denicola 的 States and fates 中有更多关于 promise 术语的细节可以供您参考。

使用Promise

在创建Promise对象的时候需要给Promise构造函数传递一个excutor执行器函数,该函数包括两个函数参数,resolve和reject,这两个参数在调用时分别会将Promise对象的状态转变为fulfilled或rejected。

let p = new Promise((resolve, reject) => {
   
	//	some codes
	
	if (  /** 异步操作成功 **/  ) {
   
    	resolv
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值