06 2022 档案
摘要:关于 this 总结 关于 this 的总结: 沿着作用域向上找最近的一个 function(不是箭头函数),看这个 function 最终是怎样执行的; this 的指向取决于所属 function 的调用方式,而不是定义; function 调用一般分为以下几种情况: 作为函数调用,即:foo(
阅读全文
摘要:手写 Promise 源码之 catch 方法实现 场景 const MyPromise = require('./myPromise') function p1() { return new MyPromise((resolve, reject) => { setTimeout(() => { r
阅读全文
摘要:手写 Promise 源码之 Promise.finally 方法的实现 场景 const MyPromise = require('./myPromise') function p1() { return new MyPromise((resolve, reject) => { setTimeou
阅读全文
摘要:手写 Promise 源码之 Promise.resolve 方法的实现 场景 const MyPromise = require('./myPromise') function p1() { return new MyPromise((resolve, reject) => { setTimeou
阅读全文
摘要:手写 Promise 源码之 Promise.all 方法的实现 需求 const MyPromise = require('./myPromise') function p1() { return new MyPromise((resolve, reject) => { setTimeout(()
阅读全文
摘要:手写 Promise 源码之将 then 方法的参数变成可选参数 需求分析 const promise = new Promise((resolve, reject) => { resolve('成功') }) promise .then() // .then(value => value) .th
阅读全文
摘要:手写 Promise 源码之捕获错误及 then 链式调用其他状态代码补充 代码实现 关键代码 constructor(exectuor) { // 捕获执行器中的错误 try { exectuor(this.resolve, this.reject) } catch (e) { this.reje
阅读全文
摘要:手写 Promise 源码之禁止循环调用 场景 演示错误的 promise 循环调用 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="
阅读全文
摘要:手写 Promise 源码之实现 then 方法的链式调用(二) 场景 在链式调用 then 方法中,可以返回普通值,也可以返回 promise 对象 const MyPromise = require('./myPromise') let promise = new MyPromise((reso
阅读全文
摘要:手写 Promise 源码之实现 then 方法的链式调用(一) 场景 const MyPromise = require('./myPromise') let promise = new MyPromise((resolve, reject) => { // setTimeout(() => {
阅读全文
摘要:手写 Promise 源码之实现多次调用添加多个处理函数 场景 const MyPromise = require('./myPromise') let promise = new MyPromise((resolve, reject) => { setTimeout(() => { resolve
阅读全文
摘要:手写 Promise 源码之在 Promise 类中加入异步逻辑 测试代码 在执行器中加入异步代码,由于异步代码要在主线程的代码完毕后才会执行,所以第18号代码 then() 会马上执行,此时在 promise 的状态为 pending,那么需要在 then 方法中增加对等待状态相关的处理代码。 c
阅读全文
摘要:手写 Promise 源码之核心逻辑实现 需求分析 Promise 就是一个类,在执行这个类的时候,需要传递一个执行器进去,执行器会立即执行 Promise 中有三种状态,分别为:成功 fullilled 失败 rejected 等待 pending pengding → fulfilled pen
阅读全文
摘要:函数式编程之函数组合和 Functor(函子) 函数组合 纯函数和柯里化很容易写出洋葱代码h(g(f(x))) 获取数组的最后一个元素再转换成大写字母,_.toUpper(_.first(_.reverse(array))) 函数组合可以让我们把细粒度的函数重新组合生成一个新的函数 管道 下面这张图
阅读全文
摘要:函数式编程之纯函数和柯里化 为什么要学习函数式编程 函数式编程是非常古老的一个概念,早于第一台计算机的诞生,函数式编程的历史。 那我们为什么现在还要学函数式编程? 函数式编程随着 React 的流行受到越来越多的关注 Vue3 也开始拥抱函数式编程 函数式编程可以抛弃 this 打包过程中可以更好的
阅读全文