写点什么

Promise

0 人感兴趣 · 50 次引用

  • 最新
  • 推荐

十分钟带你全面解析 Promise、generator、async 类同步编程!

​受javascript语言特性的影响,编程过程中充斥着大量异步回调,这会让代码维护起来特别麻烦,一步步走向回调地狱。社区中最早提出Promise解决方案,es6将其融入语法标准,并提供了generator、async,向类同步编程不断努力。本文会通过这三个方面演示类同

https://static001.geekbang.org/infoq/73/736cc2c0e8c84a14a906f388f28afee2.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

面试官:说说你对事件循环的理解

用户头像
CoderBin
2022-10-08

大家好,我是CoderBin,本次又来到了面试官系列文章,在前端面试中事件循环算是比较高频的考点了,但估计大多数人还是不理解这道题真正的含义,大多都是硬背的形式,这种忘的也快。所以本文打算用比较简单的话语说明事件循环到底是什么,并且文中穿插几条练习

从零开始 - 40 行代码实现一个简单 Promise 函数

一个遵循PromiseA+规范的函数,个人认为解决了callback异步回调地狱的问题,注意是callback方式的回调地狱,promise本身也可以存在回调地狱,需配合ES7特性async、await才能做到完全解决回调地狱。

https://static001.geekbang.org/infoq/a4/a451523fe958aa69ab1336827c57817d.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Promise.allSettled 的 Polyfill 处理

用户头像
Jerry Wang
2022-08-18

如果因为浏览器太过老旧,不支持最新的 Promise.allSettled API,我们可以使用 polyfill 技术,简单地自己用 Promise.all, 自行实现 Promise.allSettled.

https://static001.geekbang.org/infoq/75/75b5ecb30bdac62785e961aa23407857.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

将使用回调函数作为参数的函数改造为返回 Promise 的一个具体例子

用户头像
Jerry Wang
2022-08-17

我开发了一个函数 loadScript,可以动态加载指定的本地 JavaScript 文件。源代码如下:

https://static001.geekbang.org/infoq/a4/a451523fe958aa69ab1336827c57817d.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

JavaScript Promise 的使用技巧

用户头像
Jerry Wang
2022-08-12

“生产代码”是可能需要一些时间来执行的代码。

https://static001.geekbang.org/infoq/b5/b5089bb041176904f7b54a7118b543f9.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

写给 Java 程序员的前端 Promise 教程

用户头像
江南一点雨
2022-08-08

@[toc]小伙伴们知道,松哥最近在录 TienChin 项目,用的 RuoYi-Vue 脚手架,前端关于网络请求的地方,很多都涉及到了 Promise,为了让小伙伴们能更好的理解前端代码,咱们抽空整一篇文章和大家聊聊整个 Promise。

https://static001.geekbang.org/infoq/55/551a517aabd8122b64eb3150fc65cb60.webp?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Promise

用户头像
Jason199
2022-07-05

今天我们来讲一下js里面的重要函数 promise

https://static001.geekbang.org/infoq/00/0074defbfc849295d67ad12965d3b003.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

遵循 Promises/A+ 规范,手把手带你实现 Promise 源码 (核心篇)

用户头像
战场小包
2022-03-15

Promise Resolution Procedure核心讲述什么内容,我们应该如何解读它,通过它我们如何优化基础篇的Promise手写。本文小包通过提问与案例的形式带大家一起完善Promise手写

https://static001.geekbang.org/infoq/4b/4bb2240ea0759176cbd404a8937e8eb8.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Promise 静态四兄弟,你学会了吗?

用户头像
战场小包
2022-03-10

四兄弟方法是否可以接受非数组参数?all与allsettled有什么区别?race机制是怎样的?any与之有啥区别?四三兄弟应该如何实现?带着这些问题,一起进入小包的Promise的三兄弟篇章。

https://static001.geekbang.org/infoq/74/74cb32a85983a1f78bfe27417eb30a23.webp?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

面试官:对于宏任务和微任务,你知道多少?

宏任务(macroTask)和微任务(microTask),都是JavaScript中异步中的一些概念,如果你对其还一头雾水,那就跟着我在捋一遍,加深一下印象。

https://static001.geekbang.org/infoq/4f/4f0f3f0cd0c9b37aedb0ad9f0afc56d1.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

遵循 Promises/A+ 规范,深入分析 Promise 实现细节 (基础篇)

用户头像
战场小包
2022-03-03

文章详细的讲解了手写Promise源码,学习本文,你能收获:理解 Promise A+规范;理解什么是 Promise 的值穿透、Promise 链式调用机制、Promise 注册多个 then 方法等;掌握 Promise 源码编写全过程;掌握发布订阅模式在 Promise 源码编写中的使用

https://static001.geekbang.org/infoq/d7/d7e4b1eca810853baee7a5c5e4774cb7.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Promise 基本方法的简单实现

用户头像
编程三昧
2022-02-01

Promise 是前端面试和工作中极其常见的一个概念,关于它各种方法的手写实现也很有市场,今天在这里总结一下 Promise 基本方法的简单实现。

https://static001.geekbang.org/infoq/a5/a5f7dc1251827b3dd996a2223e9161af.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

自创解法!setTimeout+Promise+Async 输出顺序?简单的一匹!!

用户头像
Sunshine_Lin
2022-01-05

大家好,我是林三心,有关于EventLoop的知识点,在平时是考的非常多的,其实也跟我们日常的工作时息息相关的,懂得EventLoop的执行顺序,可以大大帮助我们定位出问题出在哪。其实正常的EventLoop顺序是很容易分辨的,但是如果setTimeout + Promise + async/a

【Promise 源码学习】第十八篇 - EventLoop 简介

用户头像
Brave
2021-12-12

本篇,主要介绍了 EventLoop 的执行原理,主要涉及以下几个点:EventLoop 简介;宏任务和微任务;EventLoop 循环机制;

【Promise 源码学习】第十七篇 - async/await 简介

用户头像
Brave
2021-12-11

本篇,主要介绍了 async/await 的使用和实现原理,主要涉及以下几个点:async/await 的使用和功能分析;async/await 的实现和原理分析;

【Promise 源码学习】第十六篇 - 了解 co 库

用户头像
Brave
2021-12-10

本篇,主要介绍了 co 库的使用和实现原理,主要涉及以下几个点:co 库的简介:特性、用法、功能分析;co 库的实现和原理分析;

【Promise 源码学习】第十五篇 - 了解 generator 生成器

用户头像
Brave
2021-12-09

本篇,主要介绍了 generator 生成器函数的使用和实现原理,主要涉及以下几个点:generator 简介:特性、用法、功能分析;generator 实现原理分析;

【Promise 源码学习】第十四篇 - 实现工具方法 promisify

用户头像
Brave
2021-12-07

本篇,实现一个 promisify 工具函数,主要涉及以下几个点:promisify 简介和测试;promisify 功能的实现:promisify、promisifyAll;

【Promise 源码学习】第十三篇 - Promise.allsettled 和 Promise.any 的实现

用户头像
Brave
2021-12-06

实现了 Promise 静态 API:Promise.allSettled 和 Promise.any;原生方法使用、原理分析、源码实现、功能测试;

【Promise 源码学习】第十二篇 - Promise.race 的实现

用户头像
Brave
2021-12-05

本篇实现Promise静态 API:Promise.race,原生Promise.race使用;Promise.race 功能与特性分析;Promise.race 的源码实现、执行分析、功能测试;

【Promise 源码学习】第十一篇 - Promise.all 的实现

用户头像
Brave
2021-12-04

实现静态 API:Promise.all:原生 Promise.all 使用;Promise.all 的功能与特性分析;Promise.all 的源码实现、执行分析、功能测试;

【Promise 源码学习】第十篇 - Promise.prototype.catch 和 Promise.prototype.finally 的实现

用户头像
Brave
2021-12-03

本篇,主要实现了 Promise 两个实例 API(原型方法):Promise.prototype.catch 和 Promise.prototype.finally;

【Promise 源码学习】第九篇 - Promise.resolve 和 Promise.reject 的实现

用户头像
Brave
2021-11-16

本篇,主要实现了静态方法 Promise.resolve 和 Promise.reject:测试原生 Promise、原理分析、功能实现;

【Promise 源码学习】第八篇 - 完善 Promise 并通过 promise-aplus-tests 测试

用户头像
Brave
2021-11-15

本篇,完善源码并通过 promise-aplus-tests 测试:支持两种嵌套 promise 情况;分析 Promise 执行过程;创建延迟对象并通过 promise-aplus-tests 测试;

【Promise 源码学习】第七篇 - 实现 Promise 返回值 x 的处理

用户头像
Brave
2021-11-14

本篇,主要实现了 Promise 对返回值 x 的处理,主要涉及到以下几个点:回顾 Promise A+ 规范;根据规范实现 resolvePromise 方法;

【Promise 源码学习】第六篇 - 实现 Promise 的链式调用

用户头像
Brave
2021-11-13

实现 Promise 链式调用功能,涉及以下:介绍 Promise 链式调用(普通值、异常的5种情况);分析当前源码问题及解决方案;Promise 链式调用的实现、功能测试、执行过程分析;

【Promise 源码学习】第五篇 - 实现 Promise 对异步操作的支持

用户头像
Brave
2021-11-12

实现 Promise 异步操作支持,涉及以下几点:测试 Promise 对异步操作的支持;分析代码问题及解决方案;使用发布订阅思想实现对异步操作的支持;Promise 异步操作的测试;

Promise_Promise技术文章_InfoQ写作社区