前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Javascript promise 模式是什么?

Javascript promise 模式是什么?

作者头像
dys
发布2018-04-03 14:55:16
1.1K0
发布2018-04-03 14:55:16
举报
文章被收录于专栏:性能与架构

什么promise模式

先看一个场景

A 中执行了ajax请求,在回调函数中调用了B,B 中又是一个ajax请求 这种代码方式会有问题 (1)可读性太差 当嵌套层数过多时,会非常痛苦 (2)用户体验很不好 因为代码到等到每一层的ajax请求都完成后才继续执行 如果调用方式变成这样,是不是感觉更好 new Promise(A).done(B); 这就是Promise模式的使用方式,相当于告诉A:执行完成后调用B,在A没有完成之前,代码继续往下执行 Promise是CommonJS的规范之一,能够帮助我们控制代码的流程,避免函数的多层嵌套 通过非阻塞的逻辑方式编写代码,并异步执行,而不是直接将回调传递给函数 promise模式有3种状态: (1)unfulfilled(未完成/执行中) (2)resolved(成功完成) (2)rejected(拒绝/失败)

promise模式如何使用

(1)promise.js promise.js 是Promise模式的轻量级实现,非常小,只有2K 使用也非常简单

(2)jquery deferred jquery 1.5 中首次引入了deferred,他遵循了 Promise模式 deferred 作为对ajax模块较大重写的一部分添加进来,所以可以使用简洁异步方式调用ajax $.ajax("/test") .done(function(){ alert("ok"); }) .fail(function(){ alert("err"); }); deferred 还允许添加多个回调函数,按照添加顺序执行 $.ajax("/test") .done(function(){ alert("ok");} ) .fail(function(){ alert("err"); } ) .done(function(){ alert("ok 2");} ); ajax方法中已经自动使用了deferred,在不是使用ajax的情况下,可以自己通过deferred对象实现

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-01-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA高性能架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档