es6异步编程 Promise 讲解 --------各个优点缺点总结
//引入模块 let fs=require('fs'); //异步读文件方法,但是同步执行function read(url) {//new Promise 需要传入一个executor 执行器//executor需要传入两个函数 resolve rejectreturn new Promise((resolve,reject)=>{fs.readFile(url,'utf8',function (err,data) {if(err){reject(err)}else{resolve(data);}})}) };//缺点 套了一个promise,而且捕获了2次,这两个请求没有依赖关系,时间叠加了 // read('./name.txt').then((data)=>{// let obj={}; // obj.name=data; // read('./age.txt').then((data)=>{// obj.age=data; // console.log(obj); // },(err)=>{// console.log(err); // }) // // }, (err)=>{// console.log(err); // });//回调地狱 链式调用 //相对好点的方法,同步两个异步依次执行 异常用catch捕获 // let obj={}; // read('./name.txt').then((data)=>{// obj.name=data; // return read('./age.txt') // }).then((data)=>{ //如果promise返回promise可以继续then // obj.age=data; // return obj //将结果向下继续传递 // }).then((data)=>{// console.log(data) //单独处理结果 // }).catch((err)=>{// console.log(err) // });//all方法是promise是类上自带的方法,并发读取,失败一个都失败了,时间只是一个读取的时间 //第一个参数 传递的是数组,数组装的是一个个promise对象 //调用后会再次返回一个promise实例 //最好的写法 Promise.all([read('./name.txt'),read('./age.txt')]).then(([name,age])=>{ //data就是promise执行成功的结果类型是数组 console.log({name,age}); }).catch((err)=>{console.log(err) })//race如果一个失败了,都失败,如果一个成功了都成功,很少用 // Promise.race([read('./name.txt'),read('./age1.txt')]).then((data)=>{// //data就是promise执行成功的结果类型是数组 // console.log(data); // }).catch((err)=>{// console.log(err) // })
转载于:https://www.cnblogs.com/null11/p/7509467.html
es6异步编程 Promise 讲解 --------各个优点缺点总结相关推荐
- 转: ES6异步编程:Thunk函数的含义与用法
转: ES6异步编程:Thunk函数的含义与用法 参数的求值策略 Thunk函数早在上个世纪60年代就诞生了. 那时,编程语言刚刚起步,计算机学家还在研究,编译器怎么写比较好.一个争论的焦点是&quo ...
- 异步编程Promise、Generator和Async
在JavaScript的世界里,对于异步编程存在如下几种方案: 1.回调函数: 2.事件触发监听: 3.发布订阅者模式: 4.Promise. 首先介绍Promise,然后介绍ES6提供的生成器函数, ...
- 支付宝异步回调返回success_深入解决异步编程Promise对象的学习
1.什么是Promise 简单来说Promise是异步编程的一种解决方案 Promise是ES6中的特性. 什么是异步操作? 网络请求中,对端服务器处理需要时间,信息传递过程需要时间,不像我们本地调用 ...
- ES6异步编程: co函数库的含义与用法
co 函数库是著名程序员 TJ Holowaychuk 于2013年6月发布的一个小工具,用于 Generator 函数的自动执行. 比如,有一个 Generator 函数,用于依次读取两个文件. v ...
- Promise异步编程
异步编程Promise 1.异步编程 2,回调函数 3,回调地狱 4,Promise 4.1,prmise的语法格式: 4.2,Promise链式 4.3,Promise.all() 1.异步编程 有 ...
- 大神带你玩转异步编程,理论与实践齐飞,敢说是目前最全的讲解了
要完全理解异步编程需要先理解几个概念 任务 我给任务的定义是完成某项功能的单元模块,任务有大有小,站在操作系统的角度,一个程序就是一个任务,每当运行一个程序就会创建一个新的任务,它在操作系统中还有一个 ...
- ES6读书笔记-Promise与异步编程的爱恨纠葛
异步编程的背景 JS 引擎建立在单线程事件循环的概念上. 单线程( Single - threaded) 意味着同一时刻只能 执行一段代码, 与 Java 或 C++这种允许同时执行多段不同代码的多线 ...
- ES6/7 异步编程学习笔记
前言 在ES6的异步函数出现之前,Js实现异步编程只有settimeout.事件监听.回调函数等几种方法 settTmeout 这种方法常用于定时器与动画的功能,因为其本质上其实是浏览器的WebAPI ...
- ES6模块化与异步编程高级用法
ES6模块化与异步编程高级用法 一.学习目标 能够知道如何使用ES6的模块化语法 能够知道如何使用Promise解决回调地域的问题 能够知道如何使用async/await 简化Promise的调用 能 ...
- 异步编程:一次搞懂Promise,async,await
文章目录 前言 一.回调函数 二.Promise 三.错误处理 四.async/await await使用时的陷阱 1 2 3 总结 前言 异步编程允许我们在执行一个长时间任务时,程序不需要进行等待, ...
最新文章
- 判断一个数是否是2的倍数----------面试算法
- python随机抽号_随手小代码——Python 从集合中随机抽取元素
- python pip工具命令_python 工具链 包管理工具 pip
- Web应用安全————多点登录互斥
- Python super() 函数的用法及实例
- linux系统获取光盘信息api,C++ 通过WIN32 API 获取逻辑磁盘详细信息的几种方法
- 白板机器学习笔记 P39-P45 指数族分布
- python 文本换行_Python学习入门(23)—读写文件
- [转载] python json 编码(dump/dumps:字典转化为json)、解码(load/loads:json转化为字典)
- 5G标准化工作遇阻,标准推出时间或将延期
- iOS9 获取手机的唯一标识(一)——CFUUID、NSUUID、IDFA、IDFV、UDID、OpenUDID 的区别
- java毕业生设计医疗机构药房管理系统软件开发计算机源码+系统+mysql+调试部署+lw
- 如何连接在同一个局域网内的打印机
- 重装系统时的硬盘格式化
- 「游戏建模」3DMAX节点材质编辑器详解
- 转载大牛对Microsoft的认识
- MFC中关于char[]转换成LPCWSTR的问题
- 04-如何选购台式电脑显卡?小白装机通俗易懂的独立显卡知识指南
- 北京大学计算机系丁万东,第八届北京大学程序设计大赛圆满落幕 陈瑜希等同学获冠军...
- Element组件引发的Vue中mixins使用,写出高复用组件