当前位置: 首页 > news >正文

pc网站与手机网站wordpress广告联盟插件

pc网站与手机网站,wordpress广告联盟插件,常见的企业网站有哪些,长安网站制作公司一、什么是Promise 在Promise A规范中规定#xff0c;Promise是一个有一个符合规范的then方法的对象或者函数。 1.关于then then接收onFulfilled和onRejected两个可选参数#xff1b;then必须返回一个新的Promise对象#xff1b;如果onFulfilled是一个函数 在状态切换为f…一、什么是Promise 在Promise A规范中规定Promise是一个有一个符合规范的then方法的对象或者函数。 1.关于then then接收onFulfilled和onRejected两个可选参数then必须返回一个新的Promise对象如果onFulfilled是一个函数 在状态切换为fulfilled之后调用不能被多次调用。如果onRejected是一个函数 在状态切换为rejected是被调用不能被多次调用。 2.状态 pending: 初始状态会转换为下面的俩个状态fulfilled: 成功状态不会再转为其他状态rejected: 失败状态不会再转为其他状态。 3.关于ES6中的Promise 构造函数接受一个回调函数executorexecutor接受两个参数resolve、rejectexecutor在new Promise是被同步调用任务被解决时调用resolve并传入结果任务被拒绝时调用reject并传入拒绝原因Promise对象除了then还有catch和finally两个函数Promise有all、resolve等静态函数。 二、实现 1.状态定义 const PENDING pending; const FULFILLED fulfilled; const REJECTED rejected; 2.功能实现 class MyPromise {// 当前状态#state PENDING;// 解决或拒绝的结果#result undefined;// 通关连环then注册的回调#handlers [];// 构造函数constructor(executor) {// 定义两个状态切换函数const resolve (data) {this.#setState(FULFILLED, data);};const reject (reason) {this.#setState(REJECTED, reason);};// 同步调用参数函数try {executor(resolve, reject);} catch (error) {reject(error);}}// 状态切换#setState(state, result) {if (this.#state ! PENDING) return;this.#state state;this.#result result;this.#run();}// 执行then注册的所有任务#run() {if (this.#state PENDING) return;// 遍历所有注册的回调while(this.#handlers.length 0){const handler this.#handlers.shift();const {resolve, reject, onFulfilled, onRejected} handler;// 根据结果执行每个任务if (this.#state FULFILLED) {this.#runOne(onFulfilled, resolve, reject);} else if (this.#state REJECTED) {this.#runOne(onRejected, resolve, reject);}}}// 执行一个任务#runOne() {// 将任务放入微队列等待被执行this.#runMicroTask(() {if (typeof callback ! function) {// 不是函数的话透传一下当前结果if (this.#state FULFILLED) {resolve(this.#result);} else {reject(this.#result);}return;}try {const data callback(this.#result);if (this.#isPromiseLike(data)) {// 结果是Priomise的话data.then(resolve, reject);} else {// 不是Promise的话直接完成并传递结果resolve(data);}} catch (error) {reject(error);}});}// 按Promise A规范判断参数是否是一个Promise#isPromiseLike(value) {if (value ! null (typeof value object || typeof value function)) {return typeof value.then function;}return false;}// 将任务放入微队列#runMicroTask(func) {if (typeof process object typeof process.nextTick function) {// 在nodejs中process.nextTick(func);} else if (typeof MutationObserver function) {// 在浏览器中const textNode document.createTextNode(1);const ob new MutationObserver(func);// 让ob观察textNode的字符串变化观察到之后会将构造函数// 中传入的func加入微队列执行ob.observe(textNode, {characterData: true,});textNode.data 2;} else {// 没有上述环境只能用宏队列代替了setTimeout(func, 0);}}then(onFulfilled, onRejected) {// 返回新Promisereturn new MyPromise((resolve, reject) {// 将任务存起来this.#handlers.push({resolve,reject,onFulfilled,onRejected,});this.#run();});} }
http://www.hkea.cn/news/14266219/

相关文章:

  • 邵阳网站制作建设进一步加强网站建设管理
  • 绵阳 网站开发东莞网站建设 塑胶五金
  • 有什么字体设计网站全国工商登记网
  • 做的成功的地方网站分销网站建设
  • 多用户网站制作企业网站用视频做首页
  • 合肥建设网网站制作个人网站论文
  • 二维码生成器网站百度网盟推广步骤
  • 青海格尔木建设局网站大连建设工程信息网档案下载
  • 花20亿做网站上海网站备案网站
  • 自己建的网站也要注册域名吗软件制作公司
  • 辽宁网站建设找哪家怎么用vue写wordpress主题
  • 青海网站建设多少钱wordpress调查插件
  • 凡科做的网站要收费吗网站制作网络推广价格
  • 企业网站建设的流程与原则长治公司网站建设
  • 天津微信网站开发阀门专业网站建设
  • 四川网站建设培训班专业网站设计如何提升网页品质
  • 网站建设行业新闻动态福州网站建设q.479185700強
  • 达内学网站开发培训课程html5响应式公司网站模版
  • 西宁做网站的公司完整个人网站开发案例
  • 网站整套模板项目代码下载比较好的平面设计网站
  • 怎么做网站的移动端适配版移动登录网页模板下载
  • 斗门区住房和城乡建设网站网站怎么接入百度地图
  • 平凉哪家做企业网站广西南宁公司网站制作
  • 好看的企业网站首页崇明集团网站建设
  • 网站做三方登陆需要注册公司不长春哪家网站做的好
  • 哪个公司做网站好苏州杭州专业seo服务公司
  • 人社局网站建设方案广州 天河网站设计
  • 富阳区住房与建设局网站网站开发工程师 英文
  • 网站搜索防止攻击南宁seo网站建设费用
  • 肇庆网站建设咨询高端网站建设机构