修身养性,知行合一

  • 首页
  • 爱码
    • 系统
    • 数据库
    • JavaScript
    • CSharp
    • Python
  • 生活
    • 文化
    • 美食
  • 杂谈
  • 关于
异步
JavaScript

真丶深入理解JavaScript异步编程(最终章):手撸 Promise

写在前面 已经写了3篇前置内容了,主要是理解JS中的异步编程,异步的实现、以及异步的原理。今天内容较长,从最简单、最基本的内容入手,一点一点手撸一个简易的 Promise,巩固之前理解的异步原理,这才是我的目标。 手写 Promise 了解 Promise,从手动重写一个简易版的开始。 最简易的 Promise 最基本的 Promise 的样子是这样的: new Promise((resolve, reject) => {}); 那么照猫画虎写一个: class MyPromise { constructor…

2020年12月18日 0条评论 1208点热度 1人点赞 jeremyjone 阅读全文
JavaScript

真丶深入理解JavaScript异步编程(三):async / await

这一篇内容比较短,介绍新增的语法糖。其实也不算新了。。。 async / await 这两个写法是 ES6 新加的特性,这让我们的代码更加简单明了。但是这并不是什么新技术,只是一个语法糖而已,它的本质还是 Promise。 await 我个人理解,await 是这两个语法糖的重点。它具有以下特点: 它后面需要跟一个 Promise,如果是一个值,则会自动包裹成一个 Promise 它需要在异步函数内部使用,也就是函数必须使用 async 修饰。 await 相当于前面提到过的 then,使用 await 等待其后 …

2020年12月17日 0条评论 1701点热度 0人点赞 jeremyjone 阅读全文
JavaScript

真丶深入理解JavaScript异步编程(二):Promise 原理

有了前文的基础,我们深入剖析一下 Promise 的原理。 Promise 由于 JS 的单线程和任务队列,造成了很多函数嵌套,当这种嵌套激增,就会造成所谓的 回调地狱,这是我们深恶痛绝的。 创建一个 Promise 基于几方面原因,JS 催生了 Promise,它解决了很多问题。先看用法: new Promise( ( resolve, // 成功状态回调 reject // 失败状态回调 ) => { // 执行体 } ); 这是一个最基本的创建一个 Promise 的方式。 Promise 的状态 Pr…

2020年12月16日 0条评论 918点热度 0人点赞 jeremyjone 阅读全文
JavaScript

真丶深入理解JavaScript异步编程(一):异步

异步的由来与实现 JS 在设计之初就是单线程的,所以本质上并不存在异步编程。在经过不断的进化和改良之后,现在所谓的异步编程也只是利用任务队列来改变事件的触发顺序,从而在效果上达到异步。 一个生活中的例子 好比我们要吃饭,那就要先做饭,假设焖米饭需要 20 分钟,炒个菜需要 10 分钟。 如果我们一步一步来(全部我们自己动手): 1、焖米饭(20 分钟) 2、炒菜(10 分钟) 3、吃饭 很显然,我们需要 30 分钟才可以吃到饭。 如何加快速度呢?我们可以使用电饭锅来焖米饭。那现在就是: 1、焖米饭(电饭锅用时 20…

2020年12月15日 0条评论 1311点热度 0人点赞 jeremyjone 阅读全文
JavaScript

JavaScript异步加载图片

之前写的画板里面,我将它升级了一下,首先可以传入一张默认图片,然后所有操作都是基于该图片进行操作。然后我发现,当使用橡皮擦的时候,它直接将整个canvas擦成了透明。 这是因为canvas每次只能展示一张图片,这个在之前说过,有兴趣的朋友可以参考之前的文章。 于是有了很简单的想法,在擦除完成后,首先在canvas中加载原始图片,然后加载擦除后的图片,这样重叠合并成一张完整的擦除后的效果图。 有了想法,动手做: // 首先保存擦除的图片 let eraserPic = new Image(); eraserPic.s…

2019年11月7日 0条评论 3067点热度 0人点赞 jeremyjone 阅读全文

jeremyjone

这个人很懒,什么都没留下

最新 热点 随机
最新 热点 随机
封装一个极简的右键菜单 vue2 使用 @vue/composition-api 的一些问题 瀑布流的实现 Vue移动项目切换页面时不同动画的实现小技巧 WSL 安装问题 0x8007019e、0x800701bc、0x80370102 前端优化的几个点
.NET Model名称转换 vue3上手 -- 更新 jz-gantt 小记 JavaScript异步加载图片 关于 git unsafe repository 的错误 2021就要过去了 Apache部署多网站(二级域名同理)
最近评论
11 发布于 2 个月前(11月28日) 请问一下 解压excel文件的时候 报错:中央目录结尾中应包含的条目数与中央目录中的条目数不对应。是...
畅聊科技 发布于 7 个月前(07月01日) 博主写的是直接粘贴图片,但是图片不在单元格内的。我改造之后,直接读取单元格内的图片。 参考地址:h...
BruceQiu 发布于 8 个月前(06月17日) 上海.net程序员一个,半导体行业。可以交个朋友交流技术吗?周围虽然都是.net,但是都是带的同事,...
large-C 发布于 10 个月前(03月26日) Parsing error: "parserOptions.project" h...
FateDong 发布于 1 年前(01月12日) 这个怎么设置访问路径
分类
  • ASP.NET
  • CSharp
  • Git
  • JavaScript
  • Python
  • Vue
  • 前端
  • 小程序
  • 工具
  • 建站
  • 数据库
  • 文化
  • 服务器
  • 杂谈
  • 爱码
  • 生活
  • 系统
归档
标签聚合
vue windows mysql csharp JavaScript canvas IdentityServer .net

(っ•̀ω•́)っ✎⁾⁾ 开心每一天

COPYRIGHT © 2021 jeremyjone.com. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

京ICP备19012859号-1

京公网安备 11010802028585号