第 80 题:介绍下 Promise.all 使用、原理实现及错误处理
const p = Promise.all([p1, p2, p3]); Promise.all 方法接受一个数组作为参数,p1、p2、p3 都是 Promise 实例,如果不是,就会先调用下面讲到的 Prom…
从如何停掉 Promise 链说起
在使用 Promise 处理一些复杂逻辑的过程中,我们有时候会想要在发生某种错误后就停止执行 Promise 链后面所有的代码。然而 Promise 本身并没有提供这…
第 159 题:实现 Promise.retry,成功后 resolve 结果,失败后重试,尝试超过一定次数才真正的 reject
实现 Promise.retry,成功后 resolve 结果,失败后重试,尝试超过一定次数才真正的 reject。 Promise.retry = (fun, limit = 5) => { return new Prom…
剖析 Promise 内部结构,一步一步实现一个完整的、能通过所有 Test case 的 Promise 类
本文写给有一定 Promise 使用经验的人,如果你还没有使用过 Promise,这篇文章可能不适合你,建议先 了解 Promise 的使用 Promise 标准解读 1、只有一…
关于 setTimeout、Promise 和 async/await 的区别
setTimeout 是一个宏任务。 Promise 是个异步任务,防止回调地狱,写法更具观赏性。 async await 是根据 generator 的一个语法糖(很多人误以为是 pro…
ES6 系列之我们来聊聊 Promise
Promise 的基本使用可以看阮一峰老师的 《ECMAScript 6 入门》。这篇文章我们来聊点其他的。 回调 说起 Promise,我们一般都会从回调或者回调地狱说起…
JavaScript 中的 Promise 链式调用
Promise 链使 Promise 比 回调 。 关键思想是 Promise 的 then()函数 返回另一个承诺,所以你可以链接 .then() 一起调用来告诉 JavaScript 按顺序执行…
JavaScript 中 Promise 的 Reject 拒绝回调
这 Promise.reject() 函数 的最简洁方法 拒绝承诺 包含给定错误 然后你应该使用 .catch() 来处理错误。 const p = Promise.reject(new Error('Oops!')…
第 8 题:setTimeout、Promise、Async/Await 的区别
这题怎么没人答,我说下我粗浅的认识,抛砖引玉,欢迎指正和补充。 我觉得这题主要是考察这三者在事件循环中的区别,事件循环中分为宏任务队列和微任…
如何在 JavaScript 中等待 1 秒执行
要将 JavaScript 中的函数执行延迟 1 秒,请将 Promise 执行包装在函数中并包装 Promise 的 resolve() 在一个 setTimeout() 如下所示。 setTimeout() …
深入理解 Promise(下)
如何终止 Promise 在 promise 的链式调用中,涉及到一个类似 break 的操作。就是在某一个 then 函数的调用中,某种情况下,要取消后续的所有操作。即…
从 Promise 来看 JavaScript 中的 Event Loop、Tasks 和 Microtasks
看到过下面这样一道题: (function test() { setTimeout(function() {console.log(4)}, 0); new Promise(function executor(resolve) { console.log(1…
第181题:Promise.prototype.finally 的作用,如何自己实现 Promise.prototype.finally?
Promise.prototype.finally() 是 ES2018 新增的特性,它回一个 Promise ,在 promise 结束时,无论 Promise 运行成功还是失败,都会运行 finally ,类…