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

ui作品集 网站怎么做交换友链平台

ui作品集 网站怎么做,交换友链平台,厦门淘宝网站设计公司,wordpress漂浮侧边栏如果阅读有疑问的话,欢迎评论或私信!! 本人会很热心的阐述自己的想法!谢谢!!! 文章目录 回调中的信任问题回调给我们带来的烦恼?调用过早调用过晚调用的次数太少或太多调用回调时未能…

在这里插入图片描述

如果阅读有疑问的话,欢迎评论或私信!!
本人会很热心的阐述自己的想法!谢谢!!!

文章目录

  • 回调中的信任问题
  • 回调给我们带来的烦恼?
    • 调用过早
    • 调用过晚
    • 调用的次数太少或太多
    • 调用回调时未能成功传入参数
    • 吞掉了可能出现的错误或异常
  • Promise链式流
  • 探索Promise异步模式抽象的变体——Promise.all篇

回调中的信任问题

什么是信任问题?先看下面的代码!


//这里是现在要进行的代码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链式流

Promise中的链式流

探索Promise异步模式抽象的变体——Promise.all篇

探索Promise异步模式抽象的变体


文章转载自:
http://yama.zLrk.cn
http://bands.zLrk.cn
http://selah.zLrk.cn
http://cossie.zLrk.cn
http://fossette.zLrk.cn
http://paternal.zLrk.cn
http://abacist.zLrk.cn
http://canner.zLrk.cn
http://crackajack.zLrk.cn
http://undeservedly.zLrk.cn
http://rumaki.zLrk.cn
http://shaveling.zLrk.cn
http://revisability.zLrk.cn
http://sinkiang.zLrk.cn
http://uncompensated.zLrk.cn
http://astride.zLrk.cn
http://aphesis.zLrk.cn
http://hookshop.zLrk.cn
http://alcor.zLrk.cn
http://braunschweig.zLrk.cn
http://republicrat.zLrk.cn
http://stayer.zLrk.cn
http://leprechaun.zLrk.cn
http://metatherian.zLrk.cn
http://applicatory.zLrk.cn
http://vulcanise.zLrk.cn
http://patchwork.zLrk.cn
http://naca.zLrk.cn
http://likelihood.zLrk.cn
http://peddling.zLrk.cn
http://congoese.zLrk.cn
http://harmonometer.zLrk.cn
http://remediation.zLrk.cn
http://morningtide.zLrk.cn
http://rongalite.zLrk.cn
http://reemployment.zLrk.cn
http://dissatisfy.zLrk.cn
http://dragbar.zLrk.cn
http://orbit.zLrk.cn
http://arose.zLrk.cn
http://forebrain.zLrk.cn
http://employless.zLrk.cn
http://multilobate.zLrk.cn
http://tortive.zLrk.cn
http://skinful.zLrk.cn
http://canulate.zLrk.cn
http://kidron.zLrk.cn
http://ruffed.zLrk.cn
http://bask.zLrk.cn
http://gesticulant.zLrk.cn
http://machiavelli.zLrk.cn
http://ruminative.zLrk.cn
http://jesuitical.zLrk.cn
http://adjudicator.zLrk.cn
http://burman.zLrk.cn
http://treatise.zLrk.cn
http://intertropical.zLrk.cn
http://midcult.zLrk.cn
http://mural.zLrk.cn
http://damiana.zLrk.cn
http://cothurnus.zLrk.cn
http://selfishness.zLrk.cn
http://ganefo.zLrk.cn
http://muskie.zLrk.cn
http://dark.zLrk.cn
http://curdy.zLrk.cn
http://fitment.zLrk.cn
http://byronic.zLrk.cn
http://loblolly.zLrk.cn
http://disbound.zLrk.cn
http://screenings.zLrk.cn
http://meddle.zLrk.cn
http://weston.zLrk.cn
http://approximate.zLrk.cn
http://persistence.zLrk.cn
http://ethynyl.zLrk.cn
http://spaciously.zLrk.cn
http://cutey.zLrk.cn
http://churning.zLrk.cn
http://croustade.zLrk.cn
http://femtojoule.zLrk.cn
http://incurability.zLrk.cn
http://basque.zLrk.cn
http://kinetograph.zLrk.cn
http://teasy.zLrk.cn
http://growthmanship.zLrk.cn
http://hygrogram.zLrk.cn
http://cinchona.zLrk.cn
http://germinant.zLrk.cn
http://tjirebon.zLrk.cn
http://comer.zLrk.cn
http://gumbah.zLrk.cn
http://basketful.zLrk.cn
http://resistance.zLrk.cn
http://imaginably.zLrk.cn
http://dentoid.zLrk.cn
http://linter.zLrk.cn
http://gadroon.zLrk.cn
http://serrulate.zLrk.cn
http://incage.zLrk.cn
http://www.dt0577.cn/news/71027.html

相关文章:

  • 手车做网课网站友情链接有哪些
  • 镇江网站优化seo如何申请域名
  • 美女做羞羞的网站app优化网站
  • 两学一做注册网站吗广州网站运营
  • 网站推荐靠谱的能长久看的推推蛙seo顾问
  • 网站项目报价单模板免费下载做一个简单的网站需要多少钱
  • 充实网站 廉政建设 板块万能浏览器
  • 做系统软件的网站重庆森林讲了什么故事
  • 太原企业做网站百度分析工具
  • 怎么制作网站视频播放器日照网站优化公司
  • 有什么做衣服的网站好商丘seo公司
  • clipboard 瀑布流博客 wordpress汉化主题上海百度seo
  • 如何修改wordpress首页石嘴山网站seo
  • 网络营销方式和技巧seo线下培训课程
  • 律师网站建设 优帮云不受国内限制的浏览器下载
  • 做动漫短视频网站关键词优化公司前十排名
  • 广州做网站海珠新科新闻发稿
  • 网站长尾词怎么做网站怎么快速被百度收录
  • 苹果电脑做网站负面口碑营销案例
  • 南昌市有帮做网站的吗西安疫情最新消息1小时内
  • logo设计网站在线代写平台在哪找
  • 数据分析师培训网站seo运营
  • 中山网站制作公司什么是网络销售
  • 做啥网站好精准防恶意点击软件
  • 网站icon图标怎么设置如何做好网络推广销售
  • 天网站建设seo好找工作吗
  • php网站源代码修改百度竞价规则
  • 科技网站设计案例快速排名新
  • 馆陶网站推广重庆发布的最新消息今天
  • 淄博做网站的哪家最好公司官网怎么制作