从0开始用ts实现promise
准备工作
npm init -y
初始化npmnpm i @rollup/plugin-node-resolve rollup rollup-plugin-typescript2 typescript -D
安装必要依赖- 创建
rollup.config.js
,并进行配置 npx tsc --init
初始化ts开发
知识储备
高阶函数
如果你的函数的参数是一个函数,那么你的函数可以称为高阶函数
1
function fn(callback){...}
如果一个函数里面返回了一个函数,那么也是高阶函数
1
2
3
4
5function fn(){
return function(){
...
}
}柯里化函数
1
2
3
4
5
6
7
8
9
10
11let utils = {}
function isType(type){
return function(val){
return Object.prototype.toString.call(val) ==`[object ${type}]`
}
}
['String','Number','Boolean'].forEach(type=>{
utils[`is`+type] = isType(type)
})
console.log(utils.isString('hello'))
console.log(utils.isNumber(111))柯里化的功能可以让函数功能更具体
Promise
为什么?
- promise可以解决多个异步并行执行,最终得到所有的结果
- 异步嵌套问题
怎么用
1 | // 1.每个promise都有三个状态 pending 等待态 resolve 标识变成成功态fulfilled reject 标识变成失败态 REJECTED |