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

网站设计制作平台哪个好四川成都哪里好玩

网站设计制作平台哪个好,四川成都哪里好玩,wordpress怎么防爬虫,轻云服务器 wordpress本人编程小白一枚#xff0c;希望多多包涵~ 如果阅读有疑问的话#xff0c;欢迎评论或私信#xff01;#xff01; 本人会很热心的阐述自己的想法#xff01;谢谢#xff01;#xff01;#xff01; 文章目录 回调中的信任问题回调给我们带来的烦恼#xff1f;调用过早… 本人编程小白一枚希望多多包涵~ 如果阅读有疑问的话欢迎评论或私信 本人会很热心的阐述自己的想法谢谢 文章目录 回调中的信任问题回调给我们带来的烦恼调用过早调用过晚调用的次数太少或太多调用回调时未能成功传入参数吞掉了可能出现的错误或异常Promise链式流未完待续…… 回调中的信任问题 什么是信任问题先看下面的代码 //这里是现在要进行的代码1ajax(...,function(){//这是是将来要执行的代码2})//这里是现在要进行的代码3我们从1执行到3中间的2交给了ajax进行回调但是我们不知道ajax会什么时候调用。代码1之后还是代码3之后或许代码3的可能性更大一些但是也不排除代码1的小概率事件毕竟不是我们所能控制的。 上面中的情况我们会叫做控制反转(inversion of control),总而言之意思就是把自己代码的控制权交给了第三方。 回调给我们带来的烦恼 调用过早 我们可能打算在代码3执行完之后再让代码2执行。在上面的代码中我们可以看到代码2可能在代码3之前运行这种情况就属于调用过早。 我们通常会使用setTimeout(“…” , 0 )使这段代码中的语句立即执行但是如今在ES6中Promise帮我们已经解决了这个问题不再需要自行设置hack。 调用过晚 调用过晚意思是我们有时希望代码2可以在代码3之前执行完毕但是真实结果可能是代码2在代码3之后执行的概率更大些。 这种情况我们称之为调用过晚。 调用过早和调用过晚会使得我们的代码具有二义性在编写程序时我们无法准确控制代码执行的时间也无法将执行时间提前。但是我们可以将代码的执行统一后退将对代码决议完之后的结果统一执行Promise就是这么做的 回调调用过晚导致未调用 这种情况也属于调用过晚或许因为代码中存在javascript错误亦或者是其他错误导致。而在ES6中的Promise没有任何东西可以阻止Promise的决议。Promise总会调用其自身的完成回调或拒绝回调的其中一个方法。 如果Promise本身永远不被决议呢 Promise提供了一种成为竞态的高级抽象机制Promise.race() 该方法的参数为一个数组数组中可以是Promise构造器亦可以是立即值。在该方法中都会通过Promise.resolve()过滤。在数组中可以设置如下代码设置超时引起拒绝回调。 function timeoutPromise(delay){return new Promise(function(resolve,reject){setTimeout(function(){reject(超时了);},delay)}) })调用的次数太少或太多 调用次数太少是指前面的未调用在回调中次数最少可以为1次。 调用次数过多是指回调被频繁引用例如设置的定时器过多… 在Promise中每个决议只能被决议一次无论后续再怎么调用也只能得到相同的决议值。 调用回调时未能成功传入参数 要强调一句Promise只能有一个决议值 如果Promise没有显示决议那么这个决议值是undefined例如下面这个代码 var p new Promise(function(resolve,reject){resolve();})p.then(function fulfilled(msg){console.log(msg); //undefined},function rejected(err){console.error(err);})这里resolve并没有传递参数。 tip:如果多个参数调用resolve(…)或者reject(…)除了第一个参数被传入Promise中其他参数会被默默忽略。如果要传入多个参数只能使用对象或一个数组的形式传入。 吞掉了可能出现的错误或异常 我们先来看一下下面的代码! var p new Promise(function(resolve,reject){foo.bar();resolve(1);})p.then(function fulfilled(msg){console.log(msg)},function rejected(err){console.error(err)})在这个例子中我们会看到控制台打印出了下面这个错误 ReferenceError: foo is not defined at test.html:15:7 at new Promise () at test.html:14:14 由上所示在出现javascript错误时Promise会默认调用了拒绝回调。 我们再看一个相似的代码 var p new Promise(function(resolve,reject){resolve(1);})p.then(function fulfilled(msg){foo.bar();console.log(msg)},function rejected(err){console.error(err)})在这个例子中我们会看到控制台打印出了下面这个错误 Uncaught (in promise) ReferenceError: foo is not defined at fulfilled (test.html:19:7) Uncaught中文意思是未能捕获即该异常没有被处理。通常我们可能会想为什么Promise检测到异常后不调用下面的rejected函数? 因为Promise有一个 重要原则决议值一次决议不会更改。我们不能因为爆出了异常就使得该决议值成为了rejected。 解决该方法通常采用注册处理函数的方式解决即在尾部使用catch()。该方法相当于以下代码 catch new Promise(function(resolve,reject){reject(); })Promise链式流未完待续……
http://www.pierceye.com/news/805617/

相关文章:

  • 建设本地网站 配置iis百度h5在线制作免费
  • 网站托管服务器做外贸去哪些网站找老外
  • 一个空间可以做几个网站微信公众号 做不了微网站
  • 嘉兴seo外包公司黄骅seo
  • 做网站录入和查询需求网络推广公司口碑
  • 招远专业做网站公司wordpress获取qq昵称 头像
  • 河北网站建设业务服务称赞的项目管理平台
  • 用jsp做的网站首页如何建立一个网站来卖东西
  • 外贸型网站建设的基本流程宣传型网站建设
  • 济南手机网站开发公司贵阳网络推广公司
  • 网站开发需求模板找网络公司做推广费用
  • 网站推广工具推荐广州公关公司招聘
  • 网站搭建平台源码做健身网站开题报告
  • 大芬网站建设樟树网站开发
  • 北京通州个人网站建设哈尔滨建设工程招投标办公室
  • 怎样开个人网站如何做百度免费推广
  • 深圳成品网站超市佛山网站建设机构
  • 江苏 网站建设第一次做网站做后感
  • wordpress翻译公司网站没事网站建设项目规划书
  • 东莞建设年审网站我的世界充钱网站怎么做
  • 太原网站排名系统电子商务市场营销
  • 社区网站开发进度表2018年做网站还能
  • 论企业网站建设的必要性内网网站搭建设
  • 网站建设怎么翻译如何建立自己的网站
  • 2345网址大全热门seo推广排名稳定
  • 网站建设工作有底薪吗360优化大师
  • 门户网站微信服务号建设大型网站建设优化排名
  • 贵州省冶金建设有限公司网站wordpress end_lvl
  • 网站建设的工作职责是什么网站后台显示连接已重置
  • 俱乐部手机网站模板微信公众号个人可以做网站么