欢迎光临散文网 会员登陆 & 注册

Promise (1)

2021-05-11 02:04 作者:刂C刂C刂  | 我要投稿

Promise 是由原生JavaScript提供的异步编程问题的一种解决 回调地狱 的方案。


基本用法:

直接这样写 : new Promise( ajaxA ).then( ajaxB )

执行结果: ajaxB 并没有执行

为什么? 因为 Promise 是没有能力检测其内部传入的异步函数 ajaxA 何时结束。这里需要我们在传入的这个异步函数中去手动处理,告诉 Promise 我的异步任务已经执行完成,你可以开始往下执行了。

事实上,在 new Promise( 异步函数 ) 时,这个异步函数会被传入两个参数。我们来验证下:

arguments --- 函数的所有参数
控制台结果:

它们是两个函数,由JavaScript引擎提供,不用自己部署。通常约定 将它们命名为:resove 和  reject

resolve函数的作用是,将Promise对象的状态从“未完成”变为“成功”(即从Pending变为Resolved),在异步操作成功时调用,并将异步操作的结果,作为参数传递出去;reject函数的作用是,将Promise对象的状态从“未完成”变为“失败”(即从Pending变为Rejected),在异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去。

  1. Promise是一个构造函数,使用时需要 new 生成promise对象。

  2. Promise构造函数 接收函数作为参数

  3. Promise执行时有两个状态 Pending未完成已完成(已完成,又分两种分别是 Resolved成功Rejected失败

  4. 被Promise包装的异步函数会被传入两个函数参数 resove 和  reject

执行结果


Promise (1)的评论 (共 条)

分享到微博请遵守国家法律