自己动手写cpu pdf |
您所在的位置:网站首页 › 自己动手做cpu › 自己动手写cpu pdf |
这段时间在学习Promise,但始终不得要领。为了更好地理解Promise,我决定自己实现一个简易版的Promise,以学习Promise工作原理。该工程名为ToyPromise,仓库地址如下: https://github.com/pandengyang/toypromise.gitToyPromise包含了以下属性和方法: ![]() 首先,看一下ToyPromise构造函数,代码如下: function ToyPromise(resolver, name) { this._status = "pending"; this._name = name; this._fullfilled = function dummyFullfilled(value) { return value; }; this._rejected = function dummyRejected(error) { throw error; }; resolver(this._resolve.bind(this), this._reject.bind(this));}构造函数先进行了一系列的初始化,包括名称、状态、默认的完成/拒绝回调函数,代码如下: this._status = "pending"; this._name = name; this._fullfilled = function dummyFullfilled(value) { return value; }; this._rejected = function dummyRejected(error) { throw error; };默认的完成回调函数将完成值重新返回;默认的拒绝回调函数将拒绝原因重新抛出。 初始化后,构造函数立即执行用户传递的resolver函数,并将_resolve和_reject方法传递给resolver。 resolver(this._resolve.bind(this), this._reject.bind(this));resolver在决议/拒绝该ToyPromise时会调用该ToyPromise的_resolve/_reject方法。代码如下: var A = new ToyPromise(function resolver(resolve, reject) { var number = Math.random(); if (number |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |