首页
学习
活动
专区
圈层
工具
发布

typeScript版仿Promise源码

作为一个前端, 还有人说不会用 Promise,真的就有点过分了. 为了跟上卷的潮流,我们今天就用typeScript 来实现一下 Promise 的实现....必须是一个构造函数或是类(我们在使用时必须 new, js中 类实际即时构造函数的语法糖) promise 有三个状态 padding(等待) fulfilled(完成) reject(异常...== PADDING) return this.status = REJECT this.reason = reason } // promise 使用 then 接受两个回调函数 then...的提出就是为了解决异步回调地狱问题, 下面我们就来加入异步的处理....then 回调放到一个队列里存起来, 当 promise 状态发生变更时,再去调用 .then回调,这样我们就解决了异步回调问题 以下代码请参照① ② 循序查看 const PADDING: string

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

    Promise与Callback函数

    Promise与callback函数处理 异步 对比 1,callback函数处理异步:代码逻辑复杂,可读性差----回调地狱;不可return; 2,promise处理异步: 对比callback...,易读,可以return,不需要层层传递callback; 处理多个异步等待合并 3,async,await--ES2017 ,promise的语法糖 promise const promise =...=> { // 三种状态 // pending fulfilled rejected => 进行中 已成功 以失败 // 调用resolve使状态成功,调用reject使状态失败 }) promise.then...((res) => {}, (err ) => {}) promise.all() 与 promise.race() Promise.all([a, b ,c]).then(res=> { /.../ 全部分会成功时调用 // 只要有一个失败,就返回失败的reject,其余取消 // res是一个数组,按照顺序分别储存a, b, c的返回结果 }) Promise.race([a,

    93820

    TypeScript - 函数重载

    TypeScript 中的函数重载允许你为一个函数提供多个函数类型定义,以便它可以以不同的方式处理不同的参数类型或参数数量。函数重载可以提高代码的可读性和类型安全性。...在 TypeScript 中实现函数重载的步骤如下: 1. 声明重载签名:首先,你需要声明一个或多个重载签名,这些签名描述了函数可以接受的不同参数类型和返回值类型。这些签名不会包含函数体。 2....实现签名包含了函数的实际逻辑。 3. 调用函数:在调用函数时,TypeScript 编译器会根据提供的参数类型来检查哪个重载签名与之匹配,并应用相应的类型检查。...替换方案 在 TypeScript 中,由于 JavaScript 的运行时不会保留函数的重载信息,因此编译器仅在编译阶段使用函数重载。到达运行时后,所有的重载都合并为单个函数实现。...使用类型断言 类型断言可以用来告诉 TypeScript 编译器,某个参数是特定的类型。

    54410

    TypeScript函数重载

    函数默认参数/可选参数 对于同一个函数我们在不同场景下传参,参数有时候全部需要,有时候部分需要,定义多个同名函数就会报错,那么该怎么实现这个操作呢?我们可以为函数设置默认参数和可选参数。...函数重载 什么事函数重载呢?当我们多次调用函数时传递不同参数数量或者类型,函数会做出不同处理。...1、函数签名 这里介绍个名次「函数签名」,顾名思义,函数签名主要定义了参数及参数类型,返回值及返回值类型。函数签名不同,函数会做出不同的处理,这是我对函数重载的理解。...string类型没有toFixed属性`,那么怎么用函数重载解决这个报错问题呢?...拓展JS中函数重载 JS中函数重载怎么实现呢?

    40600

    TypeScript 函数(上)

    函数是一组一起执行一个任务的语句。 您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。...函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体。...可选参数和默认参数 可选参数 在 TypeScript 函数里,如果我们定义了参数,则我们必须传入这些参数,除非将这些参数设置为可选,可选参数使用问号标识 ?...匿名函数 匿名函数是一个没有函数名的函数。 匿名函数在程序运行时动态声明,除了没有函数名外,其他的与标准函数一样。 我们可以将匿名函数赋值给一个变量,这种表达式就成为函数表达式。...语法格式如下: var res = function( [arguments] ) { ... } 构造函数 TypeScript 也支持使用 JavaScript 内置的构造函数 Function()

    63530

    TypeScript函数的类型

    (x,y){ return x+y; } 一个函数有输入和输出,要在 TypeScript 中对其进行约束,需要把输入和输出都考虑到,其中函数声明的类型定义较简单: function sum...mySum:(x:number,y:number)=>number=function (x:number,y:number):number{ return x+y; }; 注意不要混淆了 TypeScript...在 TypeScript 的类型定义中,=> 用来表示函数的定义,左边是输入类型,需要用括号括起来,右边是输出类型。...参数默认值 在 ES6 中,我们允许给函数的参数添加默认值,TypeScript 会将添加了默认值的参数识别为可选参数: function buildName(firstName:string,lastName...注意,TypeScript 会优先从最前面的函数定义开始匹配,所以多个函数定义如果有包含关系,需要优先把精确的定义写在前面。

    2.6K30
    领券