首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从一道让我失眠的 Promise 面试题开始,深入分析 Promise 实现细节

我们都知道 Js 是单线程都,但是一些高耗时操作就带来了进程阻塞问题。为了解决这个问题,Js 有两种任务的执行模式:同步模式(Synchronous)和异步模式(Asynchronous)。...; } } } 4. then 的简单实现 // MyPromise.js then(onFulfilled, onRejected) { // 判断状态 if (this.status...= null; 2. then 方法中的 Pending 的处理 // MyPromise.js then(onFulfilled, onRejected) { // 判断状态 if (this.status...回调函数存入数组中 // MyPromise.js then(onFulfilled, onRejected) { // 判断状态 if (this.status === FULFILLED)...循环调用成功和失败回调 // MyPromise.js // 更改成功后的状态 resolve = (value) => { // 只有状态是等待,才执行状态修改 if (this.status

1.3K40

一杯喜茶的时间手搓Promise

前言 我们都知道,JS是单线程的,只有前一个任务结束,才能执行下一个任务。显然在浏览器上,这样执行会堵塞浏览器对DOM的渲染。所以,JS中会有很多异步操作,那JS是如何实现异步操作呢?...认识Promise 「Promise」是JS解决异步编程的方法之一,其英文意思是「承诺」。在程序中可理解为等一段时间就会执行,等一段时间就是JS中的异步。...// ES6声明构造函数 class MyPromise { constructor(implement) { this.status = "pending"; // 初始化状态为...=== "fulfilled") { onFulfilled(this.res); } if (this.status === "rejected...学会去分析一个函数的功能,从而解构出每一个步骤是如何执行和实现的,祝大家学习愉快,下次再见~ 结语 「❤️关注+点赞+收藏+评论+转发❤️」,原创不易,鼓励笔者创作更好的文章 「关注公众号IQ前端,一个专注于CSS/JS

76140
您找到你想要的搜索结果了吗?
是的
没有找到

前端面试题分享001

前言 总结面试中的一些常规的面试题 ,js方向的,包括基础知识、设计模式、代码技巧等。...js array:map方法是否需要返回 一般情况下,我们处理数组中map方法时知道其入参有三个,分别是元素,index,数组本身,而当我们使用箭头函数直接处理元素时,并且只有一句时,那么会默认的将元素处理完然后自己会默认的返回这个元素...函数 let reject = (data)=>{ if(this.status==='pendding'){ this.status = 'reject'...(fn=>fn()) } } let reject = (data)=>{ if(this.status==='pendding'){ this.status = 'reject'...防抖与节流函数代码分析 js实现瀑布流布局 这里同样伪代码跟大家说明:我们常见的一般是横向流布局以及竖向流布局。 比如我们常见的百度图片就是横向瀑布流布局。

56240

深入理解JS的事件循环

本文由 dellyoung 独家授权发布,如果觉得文章有帮助,欢迎点击阅读原文给作者点个赞~ 前言 ★「 本文共 8606 字,预计阅读全文需要 28 分钟 」 本文将从万物初始讲起JS世界的运转规则...有了规则JS世界才能稳稳的运转起来,所以这些规则非常重要,但是你真的了解它们了吗? 阅读本文前可以思考下面几个问题: 你理解中的事件循环是怎样的? 有宏任务了,为什么还要有微任务,它们又有什么关系?...本文将会由浅入深的解答这些问题 深入理解JS系列 第一节:深入理解JS的深拷贝 第二节:深入理解JS的原型和原型链 第三节:深入理解JS的事件循环 万物初始 ★本文基于chromium内核讲解 ” 刚开始让万物运转是件挺容易的事情...() { let a = 1 + 2; let b = 3 / 4; console.log(a + b) } JS世界拿到这个任务一看很简单啊:首先建一条流水线(一个单线程)...从底层看setTimeout实现 到现在已经知道了,JS世界是由事件循环和任务队列来驱动的。 setTimeout大家都很熟悉,它是一个定时器,用来指定某个函数在多少毫秒后执行。

4K60

(建议收藏)关于JS事件循环, 这一篇就够啦

前言 在上篇我已经讲过了JS世界是如何诞生的,但是如何才能让世界有条不紊的运转起来呢? 本文将从万物初始讲起JS世界的运转规则,也就是事件循环,在这个过程中你就能明白为什么需要这些规则。...有了规则JS世界才能稳稳的运转起来,所以这些规则非常重要,但是你真的了解它们了吗? 阅读本文前可以思考下面几个问题: 你理解中的事件循环是怎样的? 有宏任务了,为什么还要有微任务,它们又有什么关系?...内核V8引擎讲解 刚开始让万物运转是件挺容易的事情,毕竟刚开始嘛,也没什么复杂事,比如有如下一系列任务: 任务1:1 + 2 任务2:3 / 4 任务3:打印出 任务1 和 任务2 结果 把任务转换成JS...w=2066&h=896&f=png&s=174567] 现在的JS的事件循环系统就能持续运转起来啦: 循环机制解决了不能循环执行的问题:引入了循环机制,通过一个 while 循环语句,线程会一直循环执行...从底层看setTimeout实现 到现在已经知道了,JS世界是由事件循环和任务队列来驱动的。 setTimeout大家都很熟悉,它是一个定时器,用来指定某个函数在多少毫秒后执行。

1.5K31

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券