promise迷你书-读书笔记
Promise三种类型
Constructor
使用Promise构造器来实例化一个promise对象
1 var promise = new Promise(function(resolve,reject){ 2 //异步处理 3 //处理结束,成功调用resolve,失败调用reject 4 })
Instance Method
promise实例对象处理成功或者失败的回调函数
promise.then(onFulfilled,onRejected) // resolve(成功)回调函数 onFulfilled // reject (失败)回调函数 onRejected promise.catch(onRejected) //reject(失败)时,对异常的处理 onRejected
Static Method
Promise作为全局对象还有静态方法
Promise.all() Promise.resolve() Promise.reject()
使用promise对象
function getUrl(url){return new Promise((resolve,reject)=>{$.ajax({url:url,method:'get',success:function(res){resolve(res)},error:function(err){reject(err)}})}) }var url = 'http://httpbin.org/get' getUrl(url).then((res)=>{//处理resolve(成功)的回调 console.log(res) }).catch((err)=>{//处理reject(异常)的回调 console.log(err) })
Promise静态方法
Promise.resolve
new Promise的快捷方式
静态方法Promise.resolve(value) 可以认为是 new Promise() 方法的快捷方式
Promise.resolve(42).then(function(value){console.log(value); });
Promise.resolve(value) 同样返回一个promise对象,并且会使这个对象从pending状态转为resolved状态
Thenable
Promise.resolve静态方法的另一个作用就是将thenable对象转为promise对象,到底什么样的对象能算是thenable的呢,最简单的例子就是 jQuery.ajax(),它的返回值就是thenable的.因为jQuery.ajax()
的返回值是 jqXHR Object 对象,这个对象具有 .then
方法
function getUrl(url){return Promise.resolve($.ajax(url)) } var url = 'http://httpbin.org/get1' getUrl(url).then((res)=>{console.log(res) }).catch((err)=>{console.log(err) })
Promise.reject
和Promise.resolve()
一样是静态方法,是new Promise()
的快捷方式
Promise.reject(new Error("BOOM!")).catch(function(error){console.error(error); });
每次调用then都会返回一个新创建的promise对象
then的错误使用方法
function badAsyncCall() {var promise = Promise.resolve();promise.then(function() {// 任意处理return newVar;});return promise; }
首先在 promise.then
中产生的异常不会被外部捕获,此外,也不能得到 then
的返回值,即使其有返回值。
由于每次 promise.then
调用都会返回一个新创建的promise对象,应该采用promise chain的方式将调用进行链式化,修改后如下
function anAsyncCall() {var promise = Promise.resolve();return promise.then(function() {// 任意处理return newVar;}); }
转载于:https://www.cnblogs.com/madlife/p/11294147.html
promise迷你书-读书笔记相关推荐
- 《机器学习》(周志华)西瓜书读书笔记
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 第1章 绪论 第2章 模型评估与选择 第3章 线性模型 第4章 决策树 第5章 神经网络 第6章 神经网络 第7章 贝 ...
- 花书读书笔记(十一)-应用
全部笔记的汇总贴:<深度学习>花书-读书笔记汇总贴 一.大规模深度学习 快速的 CPU 实现 GPU 实现:是为图形应用而开发的专用硬件组件. 大规模的分布式实现:数据并行.模型并行.异步 ...
- 《Java: The Complete Reference》等书读书笔记
春节期间读了下<Java: The Complete Reference>发现这本书写的深入浅出,我想一个问题,书中很多内容我们也知道,但是为什么我们就写不出这样一本书,这么全面,这么系统 ...
- 20220509数据结构绿书读书笔记
20220509 数据结构读书笔记 全书目录如下 1.编程原则 2.栈 3.队列 4.链栈&队列 5.回溯 6.列表和串 7.搜索 8.排序 9.表格与信息检索 10.二叉树 11.多叉树 1 ...
- 红宝书读书笔记 第八章
对象.类与面向对象编程 属性的类型 内部属性用两个中括号如[ [ Enumerable ] ] 开发者不能直接访问 数据属性 数据属性:数据属性包含一个保存数据值的位置.值会从这个位置读取,也会写入到 ...
- 思维导图操作书 读书笔记
既然是思维导图的读书笔记,那笔记也就用思维导图来呈现.
- 《产品思维》一书读书笔记
作者简介 · · · · · · 刘飞,资深产品人,滴滴出行司机方向前产品负责人,点我达前产品专家,嘟嘟美甲联合创始人,锤子科技产品经理.在知乎累计446579次赞同,224900人关注," ...
- 现代操作系统-原理与实现(下)【银杏书-读书笔记】
上篇链接戳这里 目录 第7章-进程间通信 多进程协助的目的 进程间通信IPC 数据传递 基于共享内存的消息传递 操作系统辅助的消息传递 控制流转移 单向和双向 同步和异步 超时机制 通信连接管理 直接 ...
- python编程入门书-读书笔记之《编程小白的第1本Python入门书》
本书电子版下载地址:百度网盘 写在前面:你需要这本书的原因 有没有那一个瞬间,让你想要放弃学习编程? 在我决心开始学编程的时候,我为自己制定了一个每天编程1小时的计划,那时候工作很忙,我只能等到晚上9 ...
最新文章
- PCI总线和PXI总线的区别
- 【Linux多线程】三个经典同步问题
- MTK Read/Write IMEI from App
- 数据库-优化-案例-count()函数的优化
- 【多元域乘法】多项式乘法电路原理及MATLAB详解
- 汇编_指令_FLAGS
- 'OFFSET' 附近有语法错误。 在 FETCH 语句中选项 NEXT 的用法无效。
- Eve-NG-Toolkit
- 1090. Highest Price in Supply Chain (25)-PAT甲级真题
- Atitit php读取数据库记录集合并循环修改展示//------------------------ini db sys$dbstr = “mysql:host=“ . $mysql_con
- sql获取服务器系统时间,sql server 获取系统时间的方法
- 18650锂电池保护板接线图_锂电池保护板几种接线方法
- 小程序源码:微信智慧外链接致富版微信小程序源码下载,支持多端转换-多玩法安装简单
- 努比亚 Z17 mini s (Nubia NX589J) 解锁BootLoader 并刷入recovery ROOT
- 关于单向散列hash函数破解 彩虹表的简单理解
- java short 写法_Java数据类型short的使用方法
- anti-wrinkle_Anti-wrinkle是什么意思
- SAP-WEB-GUI无法上传excel问题
- U-SEM体验模型——让游戏交互设计的维度更加清晰
- Right-BICEP要求设计四则运算2