自用迷你版的Deferred
2024-10-06 05:35:49
啥也不说贴代码,项目用
/**
* 迷你版的deferred
*/
function Deferred(func) {
if (this instanceof Deferred === false) {
return new Deferred(func)
}
var tuple = [];
var promise = {
resolve: function() {
var t = tuple.shift(),
n;
t && (n = t.apply(null, arguments), n instanceof Deferred && (n.tuple = tuple));
},
then: function(n) {
return tuple.push(n), this;
}
}
if (func) {
func.call(promise, promise.resolve);
}
return promise;
};
demo1
var d = new Deferred(); setTimeout(function() {
d.resolve('aaaa')
}, 500) d.then(function(bbb){
console.log(bbb)
})
demo2
Deferred(function(resolve) {
resolve('aaaa')
}).then(function(bbb) {
console.log(bbb)
})
最新文章
- 关闭SqlServer连接
- Java 入门 代码2浮点数据类型
- 曲线行驶s弯道技巧图解【转】
- 【MySQL】insert批量插入优化方案
- uiscrollview上的 uipangesturerecognizer冲突
- PHP能得到你是从什么页面过来的,r…
- Android(java)学习笔记197:常用的对话框
- 绘图quartz之加水印
- Java自学资料——线程
- odd or even?
- 安卓图表引擎AChartEngine(六) - 框架源码结构图
- ORACLE数据库维护
- gunicorn+anaconda+nginx部署django项目(ubuntu)
- CAS实现单点登录
- luogu 3396 哈希冲突 奇怪的根号
- 买了第一台mac
- JMD Handy Baby 2 to Decode &; Adding New BMW 525 ID46 Key
- luogu P2508 [HAOI2008]圆上的整点
- django----查看数据库中的sql语句
- SpringBoot @Aspect