×

JavaScript 异步

96
掘金官方
2018.01.02 17:51 字数 3881

JavaScript怎么使用循环代替(异步)递归

问题描述 在开发过程中,遇到一个需求:在系统初始化时通过http获取一个第三方服务器端的列表,第三方服务器提供了一个接口,可通过分页形式获取列表。 这里有两个问题: 未知的列表数量。就算已知总数量,如果数据量巨大,也不应该一次获取全部信息。 在node.js中,http是异步的…


[译]Bluebird 高性能揭秘 - 文蔺的博客 @wemlion


Bluebird 是一个广泛使用的 Promise 库,最早在 2013 年得到人们的关注。相比其他同等水平的 Promise 库,Bluebird 快了一百来倍。Bluebird 自始至终遵循着 JavaScript 优化的一些基本原则,所以才有这么好的性能。本文将会介绍其中最有价值的三个方面。


前端 fetch 通信


随着前端异步的发展, XHR 这种耦合方式的书写不利于前端异步的 Promise 回调. 而且, 写起来也是很复杂. fetch API 本来是在 SW(ServiceWorkers) 中提出的, 不过, 后面觉得好用, 就把他挂载到 window 对象下. 这样, 在前端的正常通信中, 我们也可以直接调用. 但, fetch 毕竟比较新, 看一下他的兼容性。


彻底理解 Javascript 中的 Promise


彻底理解 Javascript 中的 Promise


JavaScript Promise API


尽管同步代码易于追踪和调试,但异步代码普遍在性能和灵活性上更具优势。Why "hold up the show" when you can trigger numerous requests at once and then handle them when each is ready?(这句要怎么翻??)promise 和许多基于 promise 的新的 API 已经成为 JavaScript 世界重要的一部分。让我们来看一下 promise 的 API 如何来使用。


从零实现一个简单的 Promise


本文教大家如何从零开始,一步一步实现一个简单的 Promise


前端的异步解决方案之 Promise 和 Await/Async


异步编程模式在前端开发过程中,显得越来越重要。从最开始的 XHR 到封装后的 Ajax 都在试图解决异步编程过程中的问题。随着 ES6 新标准的出来,处理异步数据流的解决方案又有了新的变化。Promise 就是这其中的一个。我们都知道,在传统的 ajax 请求中,当异步请求之间的数据存在依赖关系的时候,就可能产生很难看的多层回调,俗称” 回调地狱”(callback hell)。另一方面,往往错误处理的代码和正常的业务代码耦合在一起,造成代码会极其难看。为了让编程更美好,我们就需要引入 promise 来降低异步编程的复杂性。


「杭州 Node Party」Node.js 错误处理实践


今天我想介绍的是 Node.js 开发中一个很小,但又很重要的话题 —— 错误处理。作为一名软件工程师,我想我们应该都会认可「错误是无法避免的」,因此我们必须积极地去对待这些错误,才能写出健壮的代码。


ES6 JavaScript Promise的感性认知


如果你是一个先知,你是没有等待、异步这种感觉的。这就是Promise的作用,一种“先知”的形式。好比上帝,已经在他的时间维度的一瞬间规划好了你的一生(因为他有先知的能力)(他无需跟着经历你的时间),虽然你自己依然感受到了时间,以及各种变数。
对于JS代码而言,我们就是上帝。我们能够预知代码的走向,并规划好代码的人生。


玩转 Promise,随心所欲控制异步操作


在 es6 中,Promise 的使用显得尤为重要,它以一种链式的表达方式来为工程师们展示一种新的异步操作。而真正掌握它后,就会在处理各种需要的异步操作就更加得心应手,如网络请求,连续的异步操作以及错误的处理等......


[翻译] We have a problem with promises - FEX


如何正确使用 Promises


对程序员的一个 Promise(一)


在日常的工作中经常会遇到需要请求多次异步的情况,但是由于异步返回时间的不确定性,因此有时候会给我们带来很多的问题和麻烦。在我们被异步嵌套的头昏脑胀的时候,我们是多么希望 JS 能够像 JAVA 一样是同步执行的。带着这样解决问题的信念,笔者学习了一下 Promise,发现还挺好用的,写一下笔者的使用心得。


JavaScript Promise 探微


我在 JavaScript 中使用 Promise 已经有一段时间了,目前我已经能高效的使用这一开始让我晕头转向的东西。但真要细说起来,我发现还是不能完全理解它的实现原理,这也正是本文写作的目的所在。如果诸位读者也处在一知半解的状态,那请读完这篇文章,相信你也会像我一样对 Promise 有更好的理解。


写一个符合 Promises/A+ 规范并可配合 ES7 async/await 使用的 Promise


写一个符合 Promises/A+ 规范并可配合 ES7 async/await 使用的 Promise


理解 Promise 的工作原理


Javascript 采用回调函数(callback)来处理异步编程。从同步编程到异步回调编程有一个适应的过程,但是如果出现多层回调嵌套,也就是我们常说的厄运的回调金字塔(Pyramid of Doom),绝对是一种糟糕的编程体验。于是便有了 CommonJS 的 Promises/A 规范,用于解决回调金字塔问题。本文先介绍 Promises 相关规范,然后再通过解读一个迷你的 Promises 以加深理解。


按顺序完成异步操作


异步的并行串行问题,用 Generator 和 Promise 实现按顺序完成异步操作。


NodeJS: 如何在 Express 中处理异步错误


翻译 & 编辑 / 鹤爷 原文 / Marc Harter 摘要 比起回调函数,使用 Promise 来处理异步错误要显得优雅许多。 结合 Express 内置的错误处理机制和 Promise 极大地降低产生未捕获错误(uncaught exception)的可能性。 Promise 在 E…


走一步再走一步,揭开co的神秘面纱


前言 原文地址源码地址 了解co的前提是�已经知晓generator是什么,可以看软大神的Generator 函数的语法,co是TJ大神写的�能够使generator自动执行的函数库,而我们熟知的koa也用到了它管理异步流程控制,将异步任务书写同步化,爽的飞起,也摆脱了一直以来…


JavaScript Event Loop 机制详解与 Vue.js 中实践应用


JavaScript Event Loop 机制详解与 Vue.js 中实践应用归纳于笔者的现代 JavaScript 开发:语法基础与实践技巧系列文章。本文依次介绍了函数调用栈、MacroTask 与 MicroTask 执行顺序、浅析 Vue.js 中 nextTick 实…


[深入 Promise(一)——Promise 实现详解

](https://juejin.im/entry/58a10aa61b69e60059d1d2af)

深度好文呐!详细的阐述 Promise 的原理和实现。赞!


[译] Promise 是如何工作的?


在这篇博文中我们将看到什么是 Promise,它是怎样工作的,为什么你应该 / 不该使用它们。


[译] 所有你需要知道的关于完全理解 Node.js 事件循环及其度量


原文地址:All you need to know to really understand the Node.js Event Loop and its Metrics 原文作者:Daniel Khan 译文出自:掘金翻译计划 本文永久链接:https://github.co


撸一个基于 promise 的简单流程控制框架


源码传送门👉 https://github.com/iammapping/flow


Node.js 异步最佳实践 & 避免回调地狱 | @RisingStack


由 @边城 翻译.
本文涵盖了处理 Node.js 异步操作的一些工具和技术:async.js、Promise、generator 和 异步函数。
阅读这篇文章之后你会知道如何避免臭名昭著的回调地狱!


深入理解 JavaScript 异步


什么是异步,异步的实现原理,event-loop,以及和事件绑定的关系。


总是一知半解的Event Loop


作者:孙辉,美团金融前端团队成员。15年毕业加入美团,相信技术,更相信技术只是大千世界里知识的一种,个人博客: https://sunyuhui.com 前言 JavaScript中的事件循环一直都是一个很多人都或多或少了解,但说不清楚的知识点,停留在一知半解的层面。以前只需要…


可视化 Promise 流程,帮你学习 Promise


Promise visualization playground for the adventurous


JavaScript 异步进化说


针对 JavaScript 异步的各种写法由浅及深地进行了讲述,异步是 JS 的核心之一,快来上车吧~


Promise 的不完全试坑记录


主要就是记录一下自己在理解 Promise 的时候没有考虑到的情况,通过各种不同状况的了解能更加明白 Promise 。


手写一款 Promise


Promise 对象是用来处理异步操作的工具, 解决开发者对异步回调的烦恼。可以说 Promise 是个代理对象,在设计模式来讲就是代理模式,它代理了一个值(通过 resolve 方法传递的值),并且设置了几个状态让用户知道当前代理值解析的结果。而笔者此次按照 Promise/A+ 的规范要求,自己尝试做了一款简化版的 Promise。


JS Tips #1:Promise.all 处理 Rejection 的技巧


如何让 Promise.all 暂时拥有类似于 try catch finally 的能力。


原来 promise 是这样的 monad


Monad 作为从 haskell 被广知的函数式类型概念,抽象又强大。那熟悉 JS 的我们如何低成本理解 Monad,特别是对于复杂而实际的一种 Monad 应用 Promise 怎么去理解,让我们在实际应用中更好地理解和应用 Monad。


前端进阶:透彻掌握 Promise 的使用,读这篇就够了


Promise 基础知识,Promise 应用场景,Promsie 模块中如何使用


How do Promises Work?


Promise 已存在于 default ES6 中,一个制作非常精致、清楚、完整的 JavaScript Promise 教程


自己撸一个 Promise 库的过程


研究这么多不如自己造一遍轮子理解更深刻


JavaScript Promise 迷你书


通过阅读本书,我们希望各位读者能在下面三个目标上有所收获。

学习 Promise 相关内容,能熟练使用 Promise 模式并进行测试

学习 Promise 适合什么、不适合什么,知道 Promise 不是万能的,不能什么都想用 Promise 来解决

以 ES6 Promises 为基础进行学习,逐渐发展形成自己的风格


八段代码彻底掌握 Promise


1.Promise的立即执行性 var p = new Promise(function(resolve, reject){ console.log("create a promise"); resolve("success"); }); console.log("after n…


promises 很酷,但很多人并没有理解就在用了


JavaScript 开发者们,现在是时候承认一个事实了:我们在 promises 的使用上还存在问题。但并不是 promises 本身有问题,被 A + 标准 定义的 promises 是极好的。


ES6 Promise


掌握 ES6 的 Promise


微信小程序中使用 Promise 进行异步流程处理


这篇文章如何在微信小程序中使用 Promise 这个神器进行了介绍


精通 Javascript 中的 Promise


精通 Javascript 中的 Promise


ES 知识总结:ES6 Promise 对象


从头到尾,一口气说完 ES6 的 Promise 对象,将它的本质给掀开 @-v-@


异步与回调的设计哲学


本文的例子用 JavaScript 语法给出,希望读者至少有使用过 Promise 的经验,如果用过 async/await 则更好,对于客户端的开发者,我相信语法不是阅读的瓶颈,思维才是,因此也可以了解一下异步编程模型的演变过程。 异步编程入门 CPS CPS 的全称是 (C…


大白话讲解 Promise


本篇文章试图用尽量少的尽量直白的话帮助理解 ES6 中的 Promise 是什么以及怎么用


[深入 Promise(二)——进击的 Promise

](https://juejin.im/entry/58a10b45128fe100659a587a)

系列第二篇。好文!系列文章,阐述很详细。


如何优雅地写 JS 异步代码


本文通过一个简单的需求:读取文件并备份到指定目录(详见第一段代码的注释),以不同的js代码实现,来演示代码是如何变优雅的。


深入理解 Promise (上)


自从 ES6 流行起来,Promise 的使用变得更频繁更广泛了,比如异步请求一般返回一个 Promise 对象,Generator 中 yield 后面一般跟 Promise 对象,ES7 中 Async 函数中 await 后面一般也是 Promise 对象,还有更多的 NodeAPI 也会返回 Promise 对象,可以说现在的编程中 Promise 的使用无处不在,那么我们是否真的弄懂了 Promise 呢?是否有误用或错误使用 Promise 呢?是否知道 Promise 的实现原理和 Promise 的花样玩法呢?下面让我们一起来探讨一下吧。


深入理解 Promise (中)


经过上一篇 深入理解 Promise (上) 的理论知识和用法学习,这一篇让我们深入源码层面,一步一步去封装一个 Promise,去了解 Promise 的内部实现,以便我们在项目中对 Promise 的使用运用自如。


深入理解 Promise (下)


经过几天源码研究学习之后,基本上对 Promise 有了深入的了解,也手动封装了自己了 Promise 工具类,下面就是我们去在应用场景中去验证这个工具类的使用了


大白话讲解 Promise(一)


去年 6 月份, ES2015 正式发布(也就是 ES6,ES6 是它的乳名),其中 Promise 被列为正式规范。作为 ES6 中最重要的特性之一,我们有必要掌握并理解透彻。本文将由浅到深,讲解 Promise 的基本概念与使用方法。



Promises/A+ 规范的各种实现版本


看来 Promise 的链式异步操作深入人心啊


对程序员的一个 Promise(二)


在上一篇文章《对程序员的一个 Promise(一)》中,分享了一下了 ES6 中 Promise 的用法,但是需要浏览器支持 Promise。在 jQuery 中也有 Promise,就让我来看看 jQuery 中的 Promise 是怎么用的。

精选文集推荐
Web note ad 1