25行代码实现Promise函数
说明
Promise函数对node后端和前端的重要性就不必多说了,很大一部分程度上解决了恶心的嵌套的回调!现在跟着我来写一个简单的Promise函数吧!
使用
阮一峰老师说的非常好了,有点忘记的同学传送门进去
开始
不啰嗦直接上代码,给你个眼神自己去体会
class PromiseAProto {then(resolve, reject){this.resolves = (this.resolves || []).concat(resolve || [])this.rejects = (this.rejects || []).concat(reject || [])return this;}
}
class PromiseA extends PromiseAProto{ constructor(cb){super(cb)cb(() => {setTimeout(() => {var resolve = this.resolves.shift();var ret = resolve && resolve();if (this.isPromiseA(ret)) {Object.assign(ret, this)}}, 0)})}isPromiseA(cb){return cb instanceof this.constructor}
}复制代码
测试
test1
new PromiseA((resolve, reject) => {resolve()console.log('hello');
}).then(() => {setTimeout(() => {console.log("world")}, 2000)
})// 输出为hello 二秒之后输出world复制代码
test2
new PromiseA((resolve, reject) => {resolve()console.log('hello');
}).then(() => {console.log("world")return new PromiseA((resolve) => {setTimeout(() => {resolve();}, 1000)console.log("hello1")})
}).then(() => {console.log("over1")
})
// 输出为hello world hello1 一秒之后输出over1复制代码
25行代码实现Promise函数相关推荐
- 25行AS3代码编程大赛的第一名!25行代码构造的AS3游戏
叫做Marius Heil的AS开发者使用AS3构造了一个25行代码的AS3游戏,并且获得了25行AS3代码编程大赛的第一名! /** * 25-Line ActionScript Contest E ...
- 代码内容变成图片_网站只剩25行代码,真有程序员“删库跑路”?
"可能我删了数据才会轻松吧 可能我格了硬盘才会休息吧 可能逃出了公司我就跑到天边 可能我还没找到 那个BUG--" 曾经,有一位程序员,在某个加班的深夜,一边听着<可能否&g ...
- [Unity实战]仅需25行代码 安卓/ios打包跳过Unity启动Logo动画...[新手开箱可用][全平台支持]
[Unity实战]仅需25行代码 安卓/ios打包跳过Unity启动Logo动画 参考文章 接上一篇文章-unity隐私协议包通过审查 1.直接上代码: 2.打包后使用效果展示: 3.源码地址: 参考 ...
- (~解题报告~)L1-020 帅到没朋友 (20分)——25行代码AC
立志用更少的代码做更高效的表达 当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅而没有朋友.本题就要求你找出那些帅到没有朋友的人. 输入格式: 输入第一行给出一个正整数N(≤100),是已知朋 ...
- 25行代码AC_蓝桥杯 2017A组省赛第九题 分巧克力(暴力优化)
励志用少的代码做高效表达 题目描述 儿童节那天有K位小朋友到小明家做客.小明拿出了珍藏的巧克力招待小朋友们. 小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形. 为了公平起见,小明需 ...
- python闹钟界面源码_Python GUI 教程 25行代码写一个小闹钟
今天我们讲一下用Python写的GUI小程序.一个小闹钟(只是屏幕提示,没有声音哦) 让我们先介绍这个闹钟如何奇葩. 需要通过命令行启动. 没有标题栏. 没菜单. 甚至没有关闭按钮. 没有运行界面. ...
- 25行代码AC_ 2017年C/C++ A组第四题 方格分割(dfs剪痕+解题报告)
励志用少的代码做高效表达 问题描述: 6x6的方格,沿着格子的边线剪开成两部分. 要求这两部分的形状完全相同. 如图:p1.png, p2.png, p3.png 就是可行的分割法. 试计算: ...
- 25行代码AC——习题5-7 打印队列(Printer Queue,UVa 12100)——解题报告
励志用尽量少的代码做高效的表达. 题目(提交)链接→UVa-12100 题目描述: 我们需要用打印机打印任务.每个任务都有1~9间的优先级,优先级越高,任务越急. 打印机的运作方式:从打印队列里取出一 ...
- 25行代码带你爬取4399小游戏数据,看下童年的游戏是否还在
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 还记得童年的网页小游戏吗?今天带大家爬取4399小游戏网站的数据,游戏名字+链接地址 目标网 ...
最新文章
- 把qss添加进qrc文件_PDF怎么压缩?一招教你快速压缩PDF文件
- HDU3434数学题
- Android 判断字符串是否为空
- 干货 | 20多门AI网络课程资源(附链接)
- Linux crontab 命令格式与具体样例
- java 1.7 新io 实践 NIO2
- HTML经典模板总结(地址)
- XCode调试器LLDB
- 在VS2013中打开Nuget
- 【javascript 变量和作用域】
- 《Java程序设计》实验报告——Java的对象与类
- 0基础怎么做可视化大屏?2种可以节省95%时间的方法教给你
- BZOJ2654/COGS1764 [2012国家集训队]tree(陈立杰) [生成树,二分]
- oracle standby同步,PRIMARY Standby不能同步问题
- python常用算法有哪些_python常见排序算法基础教程
- Linux CentOS 7.2 安装 Tomcat 8 服务器
- mysql 索引 范围扫描_MySql学习笔记(六):扫描范围
- TimeBake:part1
- test 零食店 (dp+二分)
- 导航一体机端口测试软件,导航端口查看器