ES6之async的常用简单总结

generator函数的语法糖 。

Async 函数返回一个 Promise 对象,当函数执行的时候 ,遇到 await 就会先返回,等到异步处理完成之后,再接着处理函数体内await后面的语句。

eg.1

上面这个async函数大概效果就是 ,请求’categorySearch‘接口,获取返回结果,并把获取到的data值赋值给’searchResult‘。

分析为什么要这么写 ?

service应该改是个异步接口请求的方法 ,请求需要一定时间;我们必须等接口请求成功有返回值时,才能给searchResult赋值;否则searchResult赋值结果可能是空 。

eg.2

这个async函数例子和上面的例子最大的区别就是加了then()方法处理。

为什么可以使用then?

async函数返回的是一个Promise对象,所以可以使用then方法处理。而且 , async函数内部return语句的返回值 ,会成为then方法回电函数的参数  。

同样,async函数也可以使用catch方法处理错误。

有上面的两个简单的例子可以看出来主要有下面两个。

以上总结主要来自于 阮一峰的ES6入门教程之async一章

现:在ES6中使用剩余参数运算符则更为简洁,可读性提高:

这种函数表达式形式称为简写主体语法:1.在函数主体周围没有花括号 ,2.自动返回表达式

sundae这个构造函数内的this的值是实例对象, 因为他使用new被调用.

3.5.2. 指定的对象

函数使用call/apply被调用,this的值指向指定的obj2,因为call()第一个参数明确设置this的指向

3.5.3. 上下`文对象

函数是对象的方法, this指向就是那个对象,此处this就是指向data.

3.5.3. 全局对象或 undefined

此处是this指向全局对象,在严格模式下,指向undefined.

传递给 setTimeout() 的函数被调用时没用到 new 、call() 或 apply(),也没用到上下文对象 。意味着函数内的 this 的值是全局对象,不是 dessert 对象 。实际上发生的情况是 ,创建了新的 scoops 变量(默认值为 undefined),然后递增(undefined + 1 结果为 NaN);解决此问题的方式之一是使用闭包(closure)

箭头函数的作用正是如此, 将setTimeOut()的函数改为剪头函数:

greet() 函数中混乱的前两行的作用是什么?它们的作用是当所需的参数未提供时,为函数提供默认的值。但是看起来很麻烦, ES6引入一种新的方式创建默认值, 他叫默认函数参数:

createGrid() 函数预期传入的是数组。它通过解构将数组中的第一项设为 width ,第二项设为 height 。如果数组为空,或者只有一项,那么就会使用默认参数 ,并将缺失的参数设为默认值 5。但是存在一个问题:

现:出现错误,因为 createGrid() 预期传入的是数组,然后对其进行解构。因为函数被调用时没有传入数组 ,所以出现问题 。但是 ,我们可以使用默认的函数参数!

现:

在 createSundae() 函数使用对象默认值进行解构时,如果你想使用 scoops 的默认值,但是更改 toppings ,那么只需使用 toppings 传入一个对象

将上述示例与使用数组默认值进行解构的同一函数相对比。

前:

对于这个函数,如果想使用 scoops 的默认数量,但是更改 toppings ,则必须以这种奇怪的方式调用你的函数:

因为数组是基于位置的,我们需要传入 undefined 以跳过第一个参数(并使用默认值)来到达第二个参数。

花括号 { } 表示被解构的对象,type、color 和 karat 表示要将对象中的属性存储到其中的变量

现:使用和所分配的变量名称相同的名称初始化对象时如果属性名称和所分配的变量名称一样 ,那么就可以从对象属性中删掉这些重复的变量名称 。

匿名函数被分配给属性 calculateWorth,但是真的需要 function 关键字吗?在 ES6 中不需要!

for...of循环是最新添加到javaScript循环系列中的循环。

它结合了其兄弟循环形式for循环和for...in循环的优势,可以循环任何可迭代(也就是遵守可迭代协议)类型的数据。默认情况下 ,包含以下数据类型:String、Array 、Map、Set,注意不包含Object数据类型(即{}) 。

默认情况下,对象是不可迭代的

for...of 循环还具有其他优势 ,解决了 for 和 for...in 循环的不足之处。你可以随时停止或退出 for...of 循环。

不用担心向对象中添加新的属性 。for...of 循环将只循环访问对象中的值 。

javascript中类其实只是function, 方法之间不能使用,,不用逗号区分属性和方法.

1.关键字class带来其他基于类的语言的很多思想,但是没有向javascript中添加此功能

2.javascript类实际上还是原型继承

3.创建javascript类的新实例时必须使用new关键字

相关推荐

  • 600276恒瑞医药股票股吧最新消息

    最新股价:今开:49.68,最高:50.28,涨停:54.21,换手:0.65%,成交里:41.53万手_市盈:57.21一、江苏恒瑞医药股份有限公司是一家从事医药创新、高品质药品研发等行业的企业,成...

    2026/09/10
  • 丰田格兰维亚2026款

    Mpv的突然崛起和我国二胎政策的开放有着非常直接的联系。除过在整个市场中非常稳固的别克gl8,本田奥德赛这些车型以外,各大车企也是使出浑身解数推出自己的MPv车型。比如丰田就已经坐不住了,推出了自己的...

    2026/09/09
  • 途锐W12限量版

    顶配大众途锐到底有多牛?W12引擎车价能抵北京一套房大众辉腾、途锐一直以低调之王著称。低调的辉腾大家见得太多,但是最低调的W12缸版本途锐大家见过吗?十年前售价158万,办下来基本上要小两百万落地。2...

    2026/09/09
  • 从定远开车到黄山旅游需要几天能回来

    从定远开车到黄山旅游来回一般3~4天左右就可以。黄山游豆腐客栈推荐路线如下:第一天,早上定远县驾车到黄山风景区,车程4小时左右到达黄山脚下汤口镇上,下午驾车到黄山附近的翡翠谷或者宏村景区游览。(夜宿游...

    2026/09/09
  • 蚂蚁股票是不是假的?

    蚂蚁股票不是假的。2020年9月25日凌晨,易方达、鹏华、中欧、汇添富、华夏5家基金公司的5只战略配售基金正式开始认购。其中,“易方达创新未来18个月封闭混合”于开售当日就募满并结束募集。鹏华、中欧公...

    2026/09/09
  • s级amg团购活动详情

    随着BBA近年来各种问题被逐渐曝光,与它们高昂的售价形成了很大反差,从而在网络上流行了起了"从来不坑穷人"这个梗。今天笔者便借此机会,来盘点几款需要加价提车的高端豪车,而它们和"从来不坑穷人"又有什么...

    2026/09/09
  • 小鹏续航多少公里?

    以小鹏P7为例,可以续航706km。以下是小鹏P7的测试寿命和小鹏P7锂电池介绍:小鹏P7测试耐力;小鹏给出的实测600公里续航里程相对保守,因为测试过程中,小鹏P7全程开启空;熟悉电动车的车主都知道...

    2026/09/09
  • 自贡驾照科目一考试只需要身份证吗-

    科目一考试带身份证就可以了,准考证以及其他证件是由驾校负责的,准考证考试时会发给你。考科目一学员要注意以下几点:1、不管你是哪个驾校,考试当天尽量提前抵达考场,因为科目一大部分都是第一次,早点到的话,...

    2026/09/09
  • 营业执照怎样手机上年检吗?

    手机如何审营业执照一、手机如何审营业执照1、进入到工商行政管理局的页面2、拉下来找到网上办事大厅,点击网上年检3、在网上年检系统的页面,输入注册号,日期,密码(每年第一次登陆进去是没有密码的,登陆进去...

    2026/09/09
  • 新疆南北环线公路旅行15天攻略

    新疆的南北环线是许多年轻人选择挑战自我的公路旅行的经典路线。这里的自然环境不可预测,气候不确定,还有大量的无人区,所以危险系数还是有的。但是科学安全的开车还是可以保证的。随着独库公路的开通,新疆迎来旅...

    2026/09/09
返回顶部