NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
## Promise简单版 ``` const PENDING = 'PENDING'; const RESOLVED = 'RESOLVED'; const REJECTED = 'REJECTED'; function Promise(executor) { const resolve = value => { this.status = RESOLVED; this.value = value; this.onResolvedCallback && this.onResolvedCallback(); } const reject = value => { this.status = REJECTED; this.value = value; this.onRejectedCallback(); } this.status = PENDING; this.value = undefined; this.onResolvedCallback = null; this.onRejectedCallback = null; executor(resolve, reject); } Promise.prototype.then = function (onResolved, onRejected) { if (this.status == PENDING) { this.onResolvedCallback = () => { onResolved(this.value); } this.onRejectedCallback = () => { onRejected(this.value); } } if (this.status == RESOLVED) { onResolved(this.value); } if (this.status == REJECTED) { onRejected(this.value); } } ```