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

怎么做轮胎网站做网站国家大学科技园郑州

怎么做轮胎网站,做网站国家大学科技园郑州,兴城泳装电子商务网站建设,空白网站怎么建立前言 为了解决Javascript 语言的执行环境是单线程所带来的问题#xff0c;Javascript 将任务的执行模式分为两种#xff1a;同步和异步 同步即为后一个任务等待前一个任务结束再继续执行#xff0c;程序的执行顺序与任务的排列顺序是一致的 异步则完全不同#xff0c;每… 前言 为了解决Javascript 语言的执行环境是单线程所带来的问题Javascript 将任务的执行模式分为两种同步和异步 同步即为后一个任务等待前一个任务结束再继续执行程序的执行顺序与任务的排列顺序是一致的 异步则完全不同每一个任务都有一个或者多个回调函数前一个任务结束后不是执行后一个任务而是执行回调函数后一个任务则是不等待前一个任务执行结束就执行。因此程序的执行顺序与任务的排列是不一致的、异步的。在浏览器端耗时很长的操作都应该异步执行从而避免浏览器失去响应。在服务端异步模式甚至是唯一的模式因为执行环境是单线程的如果同步执行所有的 http 请求服务器的性能会急剧下降。 异步解决方案 回调函数 callback 回调函数简单来说就是一个函数作为参数传递给另一个函数 回调并不一定就是异步并没有直接关系只不过回调函数是异步的一种解决方案 // 同步 function fn1(callback){console.log(1)callback callback() }function fn2(){console.log(2) }fn1(fn2)// 异步 function fn1(callback){setTimeout(() {callback callback()}, 1000) }function fn2(){console.log(2) }fn1(fn2) 缺点 代码不优雅不易阅读维护高耦合层层嵌套造成这种回调地狱异步回调中回调函数的执行栈与原函数分离开外部无法抓住异常异常会变得不可控 事件监听发布订阅模式 class EventEmitter {constructor() {this.events {};}// 订阅指定的事件on(event, listener) {if (!this.events[event]) {this.events[event] [];}this.events[event].push(listener);}// 取消订阅指定的事件off(event, listenerToRemove) {if (!this.events[event]) {return;}this.events[event] this.events[event].filter(listener listener ! listenerToRemove);}// 触发指定的事件并传递数据给事件监听器emit(event, ...args) {if (!this.events[event]) {return;}this.events[event].forEach(listener {listener.apply(this, args);});} }// 使用 EventEmitter 的例子// 创建一个事件发射器的实例 const eventEmitter new EventEmitter();// 创建监听事件 const onMessage (message) {console.log(Received message: ${message}); };// 将监听器绑定到事件 message eventEmitter.on(message, onMessage);// 触发事件 message并传递数据 eventEmitter.emit(message, Hello World!); // 输出: Received message: Hello World!// 取消订阅 eventEmitter.off(message, onMessage);// 再次触发事件 message此时没有监听器监听这个事件因此不会有输出 eventEmitter.emit(message, Hello again!);Promise ES6ECMAScript 2015引入了Promise它是一种对异步操作进行管理的机制。Promise 代表一个尚未完成但预期将来会完成的异步操作的结果。它可以解决传统的回调地狱问题提供更加优雅的异步代码管理方式具备以下特点 状态不可逆Promise有三种状态pending进行中fulfilled已成功和rejected已失败。状态改变只能从 pending 到 fulfilled 或从 pending 到 rejected状态一旦改变就不会再变。 异步结果的占位符Promise 起到一个代理的作用允许你在异步操作未完成时安排代码以响应式的成功fulfilled或失败rejected。 示例和基本用法 // 创建一个新的 Promise 对象 let promise new Promise(function(resolve, reject) {// 异步操作setTimeout(() {// 成功的异步操作resolve(Data received);// 或者一个失败的异步操作// reject(new Error(Failed to receive data));}, 1000); });// 使用 then 方法设置当 promise 状态变为 fulfilled 时应该执行的代码 promise.then(function(value) {console.log(value); }, function(error) {console.error(error); });// 使用 catch 方法来捕获异常 promise.catch(function(error) {console.error(There was an error, error); });Promise的方法 then(onFulfilled, onRejected)then方法返回一个新的 Promise。它接受两个函数作为参数。第一个函数在Promise成功时调用并接受成功的值作为参数。第二个函数在Promise失败时调用并接受错误或拒绝的理由作为参数。catch(onRejected)捕获 Promise 中发生的任何异常等同于.then(null, onRejected)。finally(onFinally)无论 Promise 最终的状态如何都会执行onFinally回调而且不接收任何参数。它通常用于清理操作比如停止加载指示器。 此外Promise API 还提供了几个静态方法用于处理多个Promise Promise.all(iterable)接受一个 Promise 对象的集合作为输入当这些对象全部成功时才触发成功。Promise.race(iterable)同样接受一个集合但只要其中的一个 Promise 对象改变状态返回的 promise 对象就会随之改变状态。Promise.resolve(value)返回一个以给定值解析后的 Promise 对象。Promise.reject(reason)返回一个以给定理由拒绝的 Promise 对象。 Promise 提高了异步代码的可读性和可维护性并且是许多现代JavaScript异步编程的基石。 Async/Await TODO Async/Await Generator Promise
http://www.w-s-a.com/news/576828/

相关文章:

  • cdr可不可做网站对网站建设起到计划和指导的作用
  • 合肥最好的网站建设网页设计心得体会2000字
  • 西安网站品牌建设门户网站类型
  • 网上做调查问卷的网站请人做网站域名和主机
  • 个人网站模板html5找公司网站建设
  • 找最新游戏做视频网站一个做网站的团队需要哪些人员
  • 威海市做网站的做网站很难吗
  • 广州房地产网站建设方案怎么免费申请网站
  • 免费生成网站软件下载影视公司名字取名
  • 网站公司提供程序免费的网页入口
  • jsp网站开发实例教学房产网站怎么做400电话
  • 网络营销方式及流程广州seo工作
  • 专业商城网站制作免费网页设计成品
  • 韩国优秀设计网站找做网站找那个平台做
  • 贵州省清镇市建设学校网站国家企业信用信息公示系统官网河北
  • 游戏界面设计网站网站建设问一问公司
  • 织梦网站模板如何安装教程视频国外哪些网站可以注册域名
  • 用群晖做网站网站中文名称注册
  • 做一个企业网站需要哪些技术app开发公司名字
  • 网站建设有技术的公司图片在线设计平台
  • 建公司网站的详细步骤关于进一步加强网站建设
  • 丰宁县有做网站的吗?维护一个网站一年多少钱
  • 杭州网站设计渠道wordpress购物主题
  • 山东政务网站建设文字logo免费设计在线生成
  • 韩雪个人网站唐山网络运营推广
  • 查建设工程业绩在哪个网站网站建设优化服务如何
  • 江苏省建设工程安全监督网站商洛网站制作
  • 海淀网站建设wzjs51网页设计页面配色分析
  • 网站的备案流程图垦利网站制作
  • 行业用品网站怎么建设外链买东西的网站都有哪些