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

免费的ppt网站蚌埠网站制作公司

免费的ppt网站,蚌埠网站制作公司,asp.net网站制作实例,wordpress出现404一般知道#xff0c;js脚步语言的执行环境是单线程的#xff0c;就是它会等一个任务完成#xff0c;才会进行第二个任务#xff0c;然后一直向下进行#xff0c;这样的执行环境简单#xff0c;但是处理不了复杂的运用#xff0c;当一个请求需要非常旧的时间的时候#…一般知道js脚步语言的执行环境是单线程的就是它会等一个任务完成才会进行第二个任务然后一直向下进行这样的执行环境简单但是处理不了复杂的运用当一个请求需要非常旧的时间的时候下一个流程就会被搁浅如果长时间得不到反馈进程就这样的奔溃了。为了解决这个硬性需求Javascript语言提出了二种语言模式 同步(Synchronous)和 异步 (Asynchronous)。异步的几种常用方法回调函数订阅和发布模式Promisegeneratorasync/await回调函数方法通过把一个函数(callback)作为参数传入另一个函数当满足一定条件的时候就执行callback函数。用法通过回调函数的方式处理异步是在异步早期的情况其中jquery中的很多都是通过callback来实现回调的。但是这种模式代码编写比较耦合不利于代码维护。发布订阅模式pub/sub模式是js设计模式中的一种本身是借鉴于java的模式但是在处理异步处理的时候非常有作用。通过一个信息中心EventCenter 来处理的监听(on)和触发(triggle)。通过pub/sub模式我们可以在信息中心清楚的看到有多少信号来源方便的集中管理更加方便于模块化的管理但是如果整个项目都使用pub/sub模式的话流程就变得不太清晰了数据的得到和数据的处理分开对于后期的维护也是一个很大的问题。PromisePromise构造函数成为承诺它分为三种状态resolve, reject, pending ,一旦状态从pending改为其它2个状态之后就不能修改了就一个承诺一样。Promise接收2个参数resolve , reject分别表示成功后执行和失败后执行可以通过实例的then()方法传递对于的函数。这里看了之后你可能会说这个和异步处理有什么联系吗你思考一下当一个异步操作后我们可以不去管它什么时候结束什么时候出错就像一个人承诺了我只需要按照他的承诺去当这个事情已经被处理好了是不是方便很多下面直接上手一个例子。我完全不用担心它里面怎么实现了反正它已经承诺了会给我结果我只需要通过then()方法去接受我需要得到的值就可以了。Promise.resolve(value) value可以是三种值单个值一个promsie实例一个thenable对象Promise.resolve(value).then((value) {})处理一个请求依赖另一个请求的情况如果一个请求的结果是下一个请求的参数如果我们使用原始的请求方法就是出现一个像右的箭头的回调地狱。一层层嵌套非常的恐怖不利于维护。那么通过prmise怎么处理回调地狱呢上面处理回调地狱是不是看着方便很多代码也简单命令依赖性也很强后面我们会继续通过async/await继续简化。处理多个请求并发的情况(不需要管服务器的返回顺序)Promise.all(arr) 接受一个promise实例的数组可以并发多个请求给服务器但是并不能保证接受到的先后顺序这个取决于服务器的处理速度。处理多个请求并发并且需要保证返回数据的顺序(运用场景比较少)上面一个方法并不会保证请求返回的结果按照你发送的顺序返回如果我想把完整的响应的结果按照我希望的顺序返回给我那应该怎么办呢这样会等待每一个请求完成后并把得到的数据push到totalData中就可以按照顺序得到我们想要的值了。当然使用async/await会更加的方便。之后我们会讲解。generator构造器generator是一个构造器generator函数执行并不会执行函数体内部部分而是返回一个构造器对象通过构造器对象的next()方法调用函数主体并且每当遇到yield都会暂停执行并返回一个对象。注意yield本身是不会反悔内容的只是给构造器对象返回了内容如果想yield表达式也返回内容可以通过给下一个next()传递参数。通过next()传递参数我们可以做到值向内部传递对于后面的异步处理很有帮助。generator异步运用利用构造器的暂停和继续的功能我们可以很好的处理异步请求得到数据后再进行其他内容。主要是运用yield表达式返回一个promise对象的原理。这样我们就得到了接口请求的数据相比于之前的promise函数的书写是不是要简单很多。和同步是一样的操作。如果我们想内部对得到的数据进行进一步的处理呢简单的co模块处理generator多个函数请求从上面我的调用方法就可以看出利用Promise generator的异步处理不断地通过then()方法处理数据。有没有一个方式是我可以直接运行一个函数然后就可以得到我想要的值。 例如网上已经封装了很多的方法例如常见的run库co函数就是来处理这样的处理方式。但是当我们发送多个请求的时候可能你会这样写这样写是会发送请求但是并不是并发多个请求而是等第一个请求p1之后再进行第二个请求p2在性能优化方面是不利的也不符合我们的要求怎么做到2个请求是独立的并且我们还可以通过得到2个请求的结果后进行其他请求。或许我们可以这样这样写是不是和我们之前写的Promise.all()很像所以还可以改成这样的async/await异步处理ES7出现了async/await进行异步的处理使得异步操作就像同步代码一样简单方便了使用由于async/await内部封装了generator的 处理所有就很少有人用generator来处理异步了但是在异步的推动中generator起到了很大的作用。await 后面接受一个promise实例**async: 返回一个promise对象 **一个简单的异步请求上面的例子是不是和generator中的异步请求很像可以像同步一样的编写代码但是相比generatorawait后面加上promise后直接返回相应的数据不像yield还需要从外部传入。处理多个请求并发的情况(不需要管服务器的返回顺序)用async/await处理多个请求并发由于await后面需要添加Promise实例是不是脑袋里面一下子就想到了一个Promise.all()你可能会很好奇为什么不需要像generator那样通过额外的函数来调用因为async已经帮你想好了内部已经调用了是不是很爽处理多个请求并发并且需要保证返回数据的顺序(运用场景比较少)如果数据中没有相互的联系但是又想一个个发送可以这样
http://www.huolong8.cn/news/255356/

相关文章:

  • 南阳网站开发公司基本网站建设技术
  • 京伦科技做的网站如何好的seo
  • 做冲压件加工有什么好网站建设公司官方网站首页
  • 网站为什么要ipc备案大型回合制手游排行榜
  • 网站建设与维护课程总结代理猫
  • 网站开发的目的意义wordpress视频云解析
  • 重庆做网站建设的公司哪家好百度贴吧网页版入口
  • 免费代理上网网站定制软件开发文案
  • 如何恢复网站首页的排名 站长网页导航栏设计图片
  • 做网站要不要用控件电器网站建设免费咨询
  • php企业网站开发好学么贵阳网络推广优化
  • 长春网站建设网站源码地税局内网网站建设
  • 如何找回网站备案密码好的公司网站制作
  • 网站增长期怎么做哈尔滨行业网站
  • 西安网站设计培训试听网站如何做数据分析报告
  • 钦州网站建设公司wordpress后台挂了
  • 做趣味图形的网站wordpress贵金属插件
  • 建国际网站需要多少钱成全视频免费高清观看在线电视剧大全
  • 自己做网站的优势临沂做网站优化
  • 邢台网站建设与制作php网站开发
  • 杭州论坛网站制作wordpress调用产品图片
  • 宁波市江北区庄桥街道工程建设领域网站可以做ps兼职的网站
  • 外贸服装网站模板平阳住房和城乡规划建设局网站
  • 网站关键词优化推广哪家快江苏网站制作
  • 湛江做网站开发网络规划的研究内容
  • 如今做那个网站致富网页设计与制作怎么插视频
  • 商标注册网站查询系统做软件常用的网站有哪些软件有哪些
  • 手机网站打不开是什么原因造成的图片在线压缩
  • 营销网站制作流程搜索引擎大全入口
  • 网站开发涉及内容广告设计公司的成本票项目有哪些