如何深入理解漫话中的JavaScript异步编程?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2567个文字,预计阅读时间需要11分钟。
《JavaScript 异步编程第三课——Generator:化异步为同步 + ES6 新增的特性》
在ES6新增的特性中,Generator无疑是最强大者之一,它能够与Promise结合,为前端异步回调难题提供终极解决方案!本文将深入探讨Generator如何化异步为同步,以及它如何与Promise协同工作。
漫话JavaScript与异步·第三话——Generator:化异步为同步 ES6新增的特性中,Generator无疑是最为强大者之一,它与Promise结合起来,为令前端头疼的异步回调难题提供了终极解决方案! 一、Promise并非完美我在上一话中介绍了Promise,这种模式增强了事件订阅机制,很好地解决了控制反转带来的信任问题、硬编码回调执行顺序造成的“回调金字塔”问题,无疑大大提高了前端开发体验。但有了Promise就能完美地解决异步问题了吗?并没有。
首先,Promise仍然需要通过then方法注册回调,虽然只有一层,但沿着Promise链一长串写下来,还是有些让人头晕。
更大的问题在于Promise的错误处理比较麻烦,因为Promise链中抛出的错误会一直传到链尾,但在链尾捕获的错误却不一定清楚来源。而且,链中抛出的错误会fail掉后面的整个Promise链,如果要在链中及时捕获并处理错误,就需要给每个Promise注册一个错误处理回调。噢,又是一堆回调!
那么最理想的异步写法是怎样的呢?像同步语句那样直观地按顺序执行,却又不会阻塞主线程,最好还能用try-catch直接捕捉抛出的错误。
本文共计2567个文字,预计阅读时间需要11分钟。
《JavaScript 异步编程第三课——Generator:化异步为同步 + ES6 新增的特性》
在ES6新增的特性中,Generator无疑是最强大者之一,它能够与Promise结合,为前端异步回调难题提供终极解决方案!本文将深入探讨Generator如何化异步为同步,以及它如何与Promise协同工作。
漫话JavaScript与异步·第三话——Generator:化异步为同步 ES6新增的特性中,Generator无疑是最为强大者之一,它与Promise结合起来,为令前端头疼的异步回调难题提供了终极解决方案! 一、Promise并非完美我在上一话中介绍了Promise,这种模式增强了事件订阅机制,很好地解决了控制反转带来的信任问题、硬编码回调执行顺序造成的“回调金字塔”问题,无疑大大提高了前端开发体验。但有了Promise就能完美地解决异步问题了吗?并没有。
首先,Promise仍然需要通过then方法注册回调,虽然只有一层,但沿着Promise链一长串写下来,还是有些让人头晕。
更大的问题在于Promise的错误处理比较麻烦,因为Promise链中抛出的错误会一直传到链尾,但在链尾捕获的错误却不一定清楚来源。而且,链中抛出的错误会fail掉后面的整个Promise链,如果要在链中及时捕获并处理错误,就需要给每个Promise注册一个错误处理回调。噢,又是一堆回调!
那么最理想的异步写法是怎样的呢?像同步语句那样直观地按顺序执行,却又不会阻塞主线程,最好还能用try-catch直接捕捉抛出的错误。

