首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

JS 异步系列 —— Promise 札记

Promise 研究 Promise 的动机大体有以下几点: 对其 api 的不熟悉以及对实现机制的好奇; 很多库(比如 fetch)是基于 Promise 封装的,那么要了解这些库的前置条件得先熟悉...Promise; 要了解其它更为高级的异步操作得先熟悉 Promise; 基于这些目的,实践了一个符合 Promise/A+ 规范的 repromise。...本札记系列总共三篇文章,作为之前的文章 Node.js 异步异闻录 的拆分和矫正。...Promise札记 Generator札记 Async札记 Promise/A+ 核心 在实现一个符合 Promise/A+ 规范的 promise 之前,先了解下 Promise/A+ 核心,想更全面地了解可以阅读...) => { console.log(data) }) .catch((err) => { console.log(err) }) Promise.wrap 的实现逻辑也顺带列出来了

1.1K30

JSpromise是什么?

所谓的Promise,简单的来说就是一个可以存放未来才能结束的任务或者事件。 1....Promise实列有三个状态: – pending (进行中) – resolved (成功) – rejected(失败) 当要处理某个任务的时候,promise的状态是pending,任务完成是状态就变成了...3.all() 接受一个数组作为自己的参数,数组中每一项都是一个promise对象,当数组的每一个promise状态时resolved时,all方法的状态才会变成resolved,有一个变成rejected...5finally() 他是不管promise时什么状态都会执行的都会去执行的,他不接受任何的参数。 Promise的优点: – 对象的状态不受外界的影响,只有异步的操作结果才能改变他的状态。...– 一旦状态改变就不会在变,任何时候都可以得到这个结果,就如他的名字一样promise(承诺)。 Promise的缺点: – 无法去取消promise,只要创建就会执行,无法中途去终止。

3.7K10

Promise 实现

Introduction 本文最初来源于 Stack Overflow的一个回答,探讨如同使用javascript实现一个promise,你也能通过阅读本文更深入的理解promise实现机制。...和一个普通值,如果是个promise,需要执行这个promise。...Observing (via .done) 现在已经完成了这个状态机,但是仍旧缺乏手段观察到内部的变化,我们最终的目标是实现then,但是done要更加好些,因而首先来实现done。....done需要实现的功能 只有当onFulfilled或者onRejected发生时 只能被调用一次 直到下一次调用(即在返回方法返回后)才调用它。...resolved 或者rejected时 handlers 能够执行而不是等到下一个next tick Observing (via .then) 现在已经完成了done,那么可以用同样的方式实现then

54950

Promise原理实现

首先先看一下 promise 的调用方式: // 实例化 Promise: new MyPromise((resolve, reject) => { setTimeout(() => {...resolve(1) //这里相当于给value赋值 }, 0) }).then(value => { console.log(value) }) 实现原理如下: const...const that = this //在函数体内部首先创建了常量 `that`,因为代码可能会异步执行,用于获取正确的 `this` 对象 that.state = PENDING //一开始 `Promise...onFulfilled, onRejected) { const that = this //首先判断两个参数是否为函数类型,因为这两个参数是可选参数 //当参数不是函数类型时,需要创建一个函数赋值给对应的参数,同时也实现了透传...至此,在promise中 resolve(1) 告诉了执行回调的时机和参数。 而then规定的是异步之后的回调函数。

47420

图解 Promise 实现原理(三)—— Promise 原型方法实现

,它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了Promise对象。...本系列文章由浅入深逐步实现 Promise,并结合流程图、实例以及动画进行演示,达到深刻理解 Promise 用法的目的。...本系列文章有如下几个章节组成: 图解 Promise 实现原理(一)—— 基础实现 图解 Promise 实现原理(二)—— Promise 链式调用 图解 Promise 实现原理(三)—— Promise...原型方法实现 图解 Promise 实现原理(四)—— Promise 静态方法实现 一、【前言】 上一节中,实现Promise 的链式调用。..._handle(callback)); } } 本节主要介绍 Promise 原型方法的实现,包括 catch、finally 以及 rejected 状态等的实现

90121

图解 Promise 实现原理(四)—— Promise 静态方法实现

本系列文章由浅入深逐步实现 Promise,并结合流程图、实例以及动画进行演示,达到深刻理解 Promise 用法的目的。...本系列文章有如下几个章节组成: 图解 Promise 实现原理(一)—— 基础实现 图解 Promise 实现原理(二)—— Promise 链式调用 图解 Promise 实现原理(三)—— Promise...原型方法实现 图解 Promise 实现原理(四)—— Promise 静态方法实现 一、前言 上一节中,实现Promise 的原型方法。...本系列图文讲解的是 Promise 的思想,实现的内容并不能完全满足 Promise/A+ 规范的所有要求。...四、参考资料 【翻译】Promises/A+规范 深入 Promise(一)——Promise 实现详解 30分钟,让你彻底明白Promise原理

82311

Promise实现原理

我们工作中免不了运用promise用来解决异步回调问题。平时用的很多库或者插件都运用了promise 例如axios、fetch等等。但是你知道promise是咋写出来的呢?...Promise 的声明 首先呢,promise肯定是一个类,我们就用class来声明。...解决异步实现 现在基本可以实现简单的同步代码,但是当resolve在setTomeout内执行,then时state还是pending等待状态 我们就需要在then调用的时候,将成功和失败存到各自的数组...秘籍规定了一种方法,就是在then里面返回一个新的promise,称为promise2:promise2 = new Promise((resolve, reject)=>{}) 将这个promise2...如果是promise,则取它的结果,作为新的promise2成功的结果 如果是普通值,直接作为promise2成功的结果 所以要比较x和promise2 resolvePromise的参数有promise2

1.1K20

手动实现Promise

手动实现Promise JavaScript是单线程的语言,通过维护执行栈与任务队列而实现了异步操作,setTimeout与Ajax就是典型的异步操作,Promise就是异步操作的一个解决方案,用于表示一个异步操作的最终完成或失败...实现 // 定义_Promise构造函数 function _Promise(fn) { this.status = "pending"; // 定义属性存储状态 // 赋予初始状态pending...${e}`); // 打印异常 reject(e); // reject } }, 0) } // 实现..._Promise比较简单 实际使用的Promise比较复杂,有各种情况的考虑 例子中仅实现Promise构造函数与then,实际中还有catch、Promise.all、Promise.race...、Promise.resolve、Promise.reject等实现 */ 每日一题 https://github.com/WindrunnerMax/EveryDay 参考 https://zhuanlan.zhihu.com

77530

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券