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

企业网站使用不规范地图如何处罚安卓app市场

企业网站使用不规范地图如何处罚,安卓app市场,上海最好网站建设公司,做招聘网站的要求JavaScript异步类型 延迟类型#xff1a;setTimeout、setInterval、setImmediate监听事件#xff1a;监听new Image加载状态、监听script加载状态、监听iframe加载状态、Message带有异步功能类型#xff1a; Promise、ajax、Worker、async/awaitJavaScript常用异步编程 Prom…  JavaScript异步类型 延迟类型setTimeout、setInterval、setImmediate监听事件监听new Image加载状态、监听script加载状态、监听iframe加载状态、Message带有异步功能类型 Promise、ajax、Worker、async/awaitJavaScript常用异步编程 Promise   Promise有几个特点 对象的状态不受外界影响有三种状态pending(进行中)、fulfilled(成功)、rejected(失败)。只有异步操作的结果可以决定当前是哪种状态其他操作无法改变。状态一旦改变就不会再变任何时候都可以得到这个结果。状态改变只可能是pending - fulfilled 或 pending - rejected实例化后会立即执行一次。所以一般将其用函数包裹起来使用的时候调用一次。如果执行后的回调也要做一些异步操作可以无限的.then下去当然要保证有返回值  方法 原型方法 all race reject resolve对象方法 then catch finally(ES9) function promiseTest(n,msg) {return new Promise((resolve,reject){setTimeout(function () {console.log(执行第${n}个任务);msg.code resolve(msg.text); // 当认为成功的时候调用resolve函数!msg.code reject(msg.text); // 当认为失败的时候调用reject函数},n*500)}); } let pro promiseTest(1,{code:true,text:返回的数据1}); /* 没有catch每个then里两个回调函数此时第一个为成功的回调第二个为失败的回调 */ pro.then((data){console.log(data); // 执行成功结果在这里// return promiseTest(2,{code:true,text:返回的数据2});return promiseTest(2,{code:false,text:失败的数据}); },(err){console.log(err); // 执行失败的结果在这里 }).then((data){console.log(data)},(err){console.log(err)}); 观察then和catch的用法 在多次then后最后跟一个catch,可以捕获所有的异常 /* 多个then和一个catch */ pro.then((data){console.log(data);return promiseTest(2,{code:false,text:失败的数据}); }).then((data){console.log(data) }).catch((err,data){console.log(失败了,err); }); all和rece的用法 all接收一个promise对象列表.在所有异步操作执行完且全部成功的时候才执行then回调只要有一个失败就执行catch回调(只对第一个失败的promise对象执行)。race也接收一个promise对象列表不同的是哪个最先执行完对应的那个对象就执行then或catch方法(then或catch只执行一次)。 /* all的用法 */ Promise.all([promiseTest(1,{code:true,text:返回的数据1}),promiseTest(2,{code:false,text:返回的数据2}),promiseTest(3,{code:false,text:返回的数据3}) ]).then((res){console.log(全部成功,res)}).catch((err){console.log(失败,err);});/* race的用法 */ Promise.race([promiseTest(1,{code:false,text:返回的数据1}),promiseTest(2,{code:false,text:返回的数据2}),promiseTest(3,{code:true,text:返回的数据3}) ]).then((res){console.log(成功,res)}).catch((err){console.log(失败,err);}); Generator Generator是什么叫做生成器通过function*关键字来定义的函数称之为生成器函数generator function与Python的语法一模一样 生成器有3个方法都有一样的返回值{value,done} .next(value)   value为向生成器传递的值。.return(value) value为需要返回的值。该方法返回给定的值并结束生成器。.throw(exception)  exception用于抛出的异常。该方法用来向生成器抛出异常并恢复生成器的执行。生成器的作用 可以和 Promise 组合使用。减少代码量写起来更方便。在没有Generator时写Promise会需要很多的then每个then内都有不同的处理逻辑。现在我们将所有的逻辑写进一个生成器函数或者在生成器函数内用yield 进行函数调用Promise的每个then内调用同一个函数即可。 定义生成器 function add(a,b) {console.log();return ab; } function cut(a,b) {console.log(-);return a-b; } function mul(a,b) {console.log(*);return a*b; } function division(a,b) {console.log(/);return a/b; } function* compute(a, b) {yield add(a,b);yield cut(a,b);let value yield mul(a,b);console.log(value,value); // 第三次调用.next()时无法为value赋值需要第四次调用才能为其赋值yield mul(a,b);yield division(a,b); } 使用生成器 // 执行一下这个函数得到 Generator 实例调用next()方法执行遇到yield暂停 let generator compute(4, 2);function promise() {return new Promise((resolve, reject) {let res generator.next();if(res.value 5){resolve(OK);}else{reject(小于5)}}); }let proObj promise(); proObj.then((data){console.log(data);let res generator.next();console.log(Promise res1,res); }).then((data){let res generator.next();// let res generator.return();console.log(Promise res2,res); }).then((data){let res generator.next(qwe); // 第四次next()时向生成器传数据console.log(Promise res3,res) }).catch((err){console.log(出错,err); }); async/await 优点简洁节约了不少代码 被async修饰的函数总会返回一个Promise对象。如果代码中返回值不是promise对象它会将其包装成promise对象的resolved值await只能在async函数内使用。它是一个操作符等待一个函数或表达式。经过该操作符处理后输出一个值。如果在异步函数中每个任务都需要上个任务的返回结果可以这么做 function takeLongTime(n) {return new Promise((resolve,reject) {setTimeout(() {resolve(n 200)}, n);}); }function step1(n) {console.log(step1 with ${n});return takeLongTime(n); }function step2(m, n) {console.log(step2 with ${m} and ${n});return takeLongTime(m n); }function step3(k, m, n) {console.log(step3 with ${k}, ${m} and ${n});return takeLongTime(k m n); }async function doIt() {console.time(doIt);const time1 300;const time2 await step1(time1);const time3 await step2(time1, time2);const result await step3(time1, time2, time3);console.log(result is ${result});console.timeEnd(doIt); } doIt(); 如果这几个任务没有关联可以这样做 async function doIt() { // 函数执行耗时2100msconsole.time(doIt);await step1(300).catch((err){console.log(err)}); // 异常处理await step1(800);await step1(1000);console.timeEnd(doIt); } doIt(); 当然最好这样做 async function doIt() { // 函数执行耗时1000msconsole.time(doIt);const time1Pro step1(300);const time2Pro step1(800);const time3Pro step1(1000);await time1Pro;await time2Pro;await time3Pro;console.timeEnd(doIt); } doIt(); 注意 async/await并没有脱离Promise它的出现能够更好地协同Promise工作。 怎么体现更好地协同它替代了then catch的写法。使得等待promise值的操作更优雅更容易阅读和书写。函数仅仅加上async并没有意义它仍然是同步函数只有与await结合使用它才会变成异步函数。 这需要精准理解await。它在等待的时候并没有阻塞程序此函数也不占用CPU资源使得整个函数做到了异步执行。doIt()函数内部是串行执行的但它本身是异步函数。在这个异步函数内可能会做很多操作ABC,他们有执行的先后顺序。这时你可能会想A、B、C之间没有关联他们之间可以是并行执行的并不需要串行那怎么办 【错误想法】这样想没错但是没必要。因为他们已经存在于异步函数内了所有的操作已经是异步的。在同样的环境情景下,底层执行的效率是相同的并不见得因为A和B之间互相异步而提高效率。【正确想法】这样想是有必要的。参照两个doIt(),调用的函数返回promise对象前者是依次生成promise对象(依次执行任务)依次等待返回结果。等待总时长取决于所有任务执行时间之和。后者则是同时生成promise对象(同时执行任务)依次等待。等待总时长取决于耗时最长的任务。后者的CPU运用率更高。错误处理。最标准的方法是使用try...catch语句但是它不仅会捕捉到promise的异常还会将所有出现的异常捕获。因此可以使用.catch,只会捕获promise相关的异常。  转载于:https://www.cnblogs.com/V587Chinese/p/11437051.html
http://www.yutouwan.com/news/165482/

相关文章:

  • 品牌设计公司网站钢铁网站哪家做的好
  • 网站建设是属于什么岗位网站网域名查询
  • 医院网站方案手机图片生成网页链接
  • 大型电商网站建设wordpress如何做产品页
  • 做海报创意网站珠宝网站设计文案
  • 西宁知名网站设计公司开发网站可用性监控
  • 最好的ppt模板网站培训设计软件
  • 惠城营销网站制作长沙软件开发培训机构
  • 新手要如何让网站被收录网站建设报价乱不一
  • 报名网站辽宁省建设银行一般网站字体
  • 永年县网站山东省建设节能协会网站
  • 优化什么建立生育支持政策体系降低生育养育教育成本长沙seo平台
  • 网站开发设计南邮区块链开发语言和工具
  • 免费电子商务网站建设长沙服装定制
  • 美橙互联建站网站被截止wordpress内容页不显示图片
  • 房产网站制作商丘购物网站开发设计
  • 塑胶 东莞网站建设图片网站怎么做优化
  • 下载黑龙江建设网官网网站园林景观设计案例网站
  • 赤峰建网站的电话织梦网站站标
  • 网站设计培训课程百度云网盘资源搜索引擎
  • 机械做卖产品网站陕西网站建设价位多少
  • 做现货去哪些网站营销好呢产品摄影
  • 一般网站建设中的推广费用重庆响应式网页建设公司
  • 甘肃建设体网站首页用adsl做网站备案
  • 上海金山网站建设公司小智logo在线制作
  • 网站页面设计报价公司部门等级划分
  • 网站首页布局设计工具5网站建站
  • 企业网站建设价格表研发项目管理系统
  • 网站制度建设模板软件培训教程
  • 网站建设一般字体多大新公司做网站有效果吗