13) 反射与代理一一对应,为代理提供操作方法:操作set/操作get/操作apply/操作contructorlet proxy = new Proxy(obj, { // 代理set(target,key,val){Reflect.set(target,key,val)},get(target,key){return Reflect.get(target,key)}})...
14) Promise1. axios异步操作的解决方案,常用于封装ajaxaxios就是基于Promise对Ajax的封装0) 特点XMLHttpRequests(浏览器) 、http(nodejs)默认将data(post)转换为jsonparams(get)支持Promise1) nodejs中应用(http)安装cnpm$ npm install cnpm -g --registry=https://registry.npm.taobao.org$ npm init$ cnpm install axios --save2) 实例化axios配置属性{methodurlparamsdata}3) 全局配置4) 拦截器5) 快捷方法 2. 原生ajax的封装function loadArticles(){// 待定return new Promise((resolve,reject)=>{let xhr = new XMLHttpRequest()xhr.open()xhr.setRequestHeader()xhr.send()xhr.onreadystatechange = function(){if(this.readyState === 4){if(this.status === 200){// 待定-> 成功 (执行then中的回调)resolve(this.response);} else {// 待定 -> 失败(执行catch中的回调)reject(this.response);}}}})}loadArticles().then().catch().finally()3. 成员方法then/catch/finally 返回值都是一个承诺对象Promise.prototype.then(successHandler[,errorHandler])Promise.prototype.catch(errorHandler)等价于Promise.prototype.then(null,errorHandler)Promise.prototype.finally(handler)4. 静态方法Promise.all([p1,p2,...])该方法返回值为promise,当p1,p2,...全部执行完毕并且状态resolved的时候,promise的then才会被调用,该then的回调函数的参数是p1,p2,...的运行结果案例:当查询完所有的班级,渠道后在调用查询学生的接口;查询学生的时候默认查询第一个班级Promise.all(p1,p2).then((result)=>{let defaultClazz = result[0].data.data[0]loadStudent();})Promise.race(iterable)返回值为promise,返回率先改变状态的promise结果Promise.allSettled(iterable)返回值为promise,与all不同,当所有的承诺对象状态被确认的时候会执行promise的then,then的参数为结果Promise.resolve(val)直接返回一个承诺对象,并且状态为成功new Promise(resolve => {resolve(val);})Promise.reject(error)直接返回一个承诺对象,并且状态为失败new Promise((resolve,reject) => {reject(error);})iterable 可迭代的对象,常见的是数组或set...,可迭代对象中的元素是promise实例
15) 迭代器0. 执行过程next() 调用 -> 指针1. ES6可迭代的对象数组、字符串、set、map实例对象可以直接访问Symbol.iterator,构造函数实现了Symbol.iterator接口// 标准inteface Iterator {[Symbol.iterator]():void;}// 类 == 构造函数 Array String Set Mapclass Array implements Iterator{[Symbol.iterator]():void{}}let arr = [1,2,3]arr[Symbol.iterator]()for(let a of arr){}2. 触发迭代器执行的场景...for-ofnew Set()/new Map()Array.from()Promise.all()Promise.race()
16) generator函数1. 迭代器函数本质上就是一个generator函数手动实现一个类数组构造函数,并且该构造函数实现了Symbol.iterator接口function* foo(){yield 'terry';yield 'larry';yield 'tom';}2. next参数next参数可以作为上?个yield表达式的返回值let iterator = foo()iterator.next(1)
17) 异步函数async function foo(){await axios.get(url1)await axios.get(url2)}foo()迭代器是通过generator函数实现的,generator还可以实现异步函数同步化,但是他的执行比较麻烦,通常借助co模块。async函数与generator函数非常相似,内置了执行器
详细解决方案
ES6 DAY4
热度:85 发布时间:2023-12-02 18:52:19.0
相关解决方案
- 程序员面试题(C++ 实现) - Day4
- 算法 | 一周刷完《剑指Offer》 Day4:第38~49题
- Day4:MySQL函数
- 回顾python-字典-day4
- 数据库管理---day4----表复制/改名---多表查询---连接查询----密码恢复及设置----创建授权---撤销授权---msyql管理工具
- 每日一题(day4)
- 剑指 offer day4
- 7天深度学习-day4-神经网络学习“你拍我猜”
- JavaWeb学习-DAY4
- 七天玩转Redis | Day4、Redis事务操作小结
- MySQL学习笔记--day4
- Vue回顾文档--day4
- 蓝桥杯31天冲刺 Day4
- javaweb阶段01-oracle(day4)
- 每日算法题(Day4)----秘密的牛奶运输
- 【Day4 C语言基础语法学习-3】
- 计算机网络读书笔记 DAY4(2)
- 计算机网络读书笔记 DAY4
- JAVAWEB学习笔记--Day4
- ES6 DAY4
- 每日一问 day4 Cookie、session和localStorage、以及sessionStorage之间的区别
- 《Windows内核安全与驱动编程》-第十一章文件系统的过滤与监控-day4
- 《Windows内核安全与驱动编程》-第十章-磁盘的过滤学习-day4
- 【day4-c\c++入门-三子棋游戏】
- 蓝桥杯赛前冲刺30天打卡题解(Day4)
- 每日一题---day4
- day4 快速选择和魔棒
- python3 学习记录 day3 day4
- 一次心路的旅行,DAY4
- New Code day4