通过示例来学习ES2016, 2017, 2018的新特性

通过示例来学习ES2016, 2017, 2018的新特性

通过示例来学习ES2016, 2017, 2018的新特性

5. 允许在函数参数最后添加逗号

这是一个很小的改动,方便git算法更加方便区分代码职责。我们用一个详细的例子来理解:

通过示例来学习ES2016, 2017, 2018的新特性

值得一提的是,在函数调用的时候,也可以在最后添加逗号。

6. Async/Await

迄今为止,我介绍的特性中最有用的就属这个功能了。Async函数可以帮助我们摆脱“回调地狱”,并且整个代码会更加简洁。

async关键字告诉JavaScript编译器对于标定的函数要区别对待。当编译器遇到await函数的时候会暂停。它会等到await标定的函数返回的promise。该promise要么得到结果、要么reject。

在下面的例子中,getAmount函数调用getUser和getBankBalance两个异步函数。我们可以用promise来实现它,不过用async await更加简洁。

通过示例来学习ES2016, 2017, 2018的新特性

6.1 async函数返回Promise

如果你想获取一个async函数的结果,你需要使用Promise的then语法。

在下面的例子中,我们想用console.log来打印doubleAndAdd的结果,可以使用then语法,将console.log函数作为参数传入。

通过示例来学习ES2016, 2017, 2018的新特性

6.2 并行处理

在上面的例子中,我们显示地调用了await两次,因为每次都等待了1秒钟,因此总计两秒钟。现在,我们可以使用Promise.all函数来让他们并行处理。

通过示例来学习ES2016, 2017, 2018的新特性

6.3 async/await的错误处理

有很多方法来处理错误。

  • 方法1:在函数中使用try-catch
通过示例来学习ES2016, 2017, 2018的新特性

  • 方法2:catch每一个await表达式

因为每一个await表达式都会返回Promise,你可以对一个进行catch操作。

通过示例来学习ES2016, 2017, 2018的新特性

  • 方法3:catch整个async-await函数
通过示例来学习ES2016, 2017, 2018的新特性

作者Fundebug 原文地址:https://blog.fundebug.com/2018/07/17/new_in_es16_17_18/


分享到:


相關文章: