首页 > 代码库 > 迷你版Deferred
迷你版Deferred
直接贴代码:
/** * 迷你版的deferred */function Deferred(func) { if (this instanceof Deferred === false) { return new Deferred(func) } var tuple = []; var promise = { resolve: function () { var t; while (t = tuple.shift()) { t.apply(null, arguments); } }, 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({ name : ‘breezefeng‘, age : 24, sex : ‘男‘ });}); d.then(function (globalInfo) { console.log(globalInfo.name);}).then(function (globalInfo) { console.log(globalInfo.age);}).then(function (globalInfo) { console.log(globalInfo.sex);});
demo2:
Deferred(function (resolve) { setTimeout(function () { resolve(‘aaaa‘); });}).then(function (bbb) { console.log(bbb)})
迷你版Deferred
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。