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

wordpress建多语言分站广州市有几个区

wordpress建多语言分站,广州市有几个区,网站取消301后,荆州网站建设价格1.先抛出一个场景:你是否在日常开发中经常使用类似代码?async function getXXList () {const result await this.getArrListApi({page:1,id:2})this.arr result.data.listconsole.log(结果是…, this.arr)……………………其他逻辑代码 }1.1 问题那你是…

1.先抛出一个场景:

你是否在日常开发中经常使用类似代码?

async function getXXList () {const result = await this.getArrListApi({page:1,id:2})this.arr = result.data.listconsole.log('结果是…', this.arr)……………………其他逻辑代码
}
1.1 问题

那你是否知道async是什么?作用是什么?await是什么执行逻辑是怎样的?await下面的代码是什么样的执行顺序?

1.2 再举一个实际开发会碰到的业务场景:

页面上有一个下拉框,下拉框的选择项数据是页面一加载就向后端请求的,而与此同时,另外一个接口也是页面一加载就发起请求,但是需要携带下拉项的数据,那么我们想法是等待下拉接口数据返回后,我们再把下拉选择的数据给另外一个接口,也就是说需要等待前一个接口数据返回后,再发起另外一个请求。

让我们带着一些疑问看下面的文章,相信你会有一个满意的答案

1.3 模拟向后端请求数据看代码执行时机

模拟向后端请求数据

2. 换一个角度看async await

ES7推出了两个关键字asyncawait,用于更加优雅的表达Promise
async 函数是什么?一句话,它就是 Generator 函数的语法糖。

说白了,能用async await的地方也能用promise的链式写法,反之也是一样

通过上面的动图,我们可以发现,await后面的代码会等待promise状态完成后才会执行,具体的执行逻辑是,await后面的代码相当于then的回调,也就是微任务,加入微任务队列,然后js继续执行其他代码,等到同步任务执行完了再去微任务队列取出来(先进先出原则),再强调一点,await后面的代码相当于promise的成功回调then方法,可能有的同学好奇了,那错误的处理程序呢? 其实是try catch

async function getXXList () {const result = await this.getArrListApi({page:1,id:2})this.arr = result.data.listconsole.log('结果是…', this.arr)……………………其他逻辑代码
}
----------------以上代码可以等价于下面的代码------------------------------
function getXXList () {const result = new promise((resolve,reject)=>{return this.getArrListApi({page:1,id:2})}).then((result)=>{this.arr = result.data.listconsole.log('结果是…', this.arr)……………其他逻辑代码}) }

3. async await 的错误处理是try catch await 后面的相当于then成功的回调

4. async

async关键字用于修饰函数,被它修饰的函数,一定返回Promise
async 1 = promise.resolve(1) //这是伪代码
async function method1(){return 1; // 该函数的返回值是Promise完成后的数据
}method1(); // Promise { 1 }async function method2(){return Promise.resolve(1); // 若返回的是Promise,则method得到的Promise状态和其一致
}method2(); // Promise { 1 }async function method3(){throw new Error(1); // 若执行过程报错,则任务是rejected
}method3(); // Promise { <rejected> Error(1) }


5. await

await关键字表示等待某个Promise完成,它必须用于async函数中
async function method(){const n = await Promise.resolve(1);console.log(n); // 1
}// 上面的函数等同于
function method(){return new Promise((resolve, reject)=>{Promise.resolve(1).then(n=>{console.log(n);resolve(1)})})
}
5.1 await也可以等待其他数据
async function method(){const n = await 1; // 等同于 await Promise.resolve(1)
}

5.2 如果需要针对失败的任务进行处理,可以使用try-catch语法

async function method(){try{const n = await Promise.reject(123); // 这句代码将抛出异常console.log('成功', n)}catch(err){console.log('失败', err)}
}method(); // 输出: 失败 123

6.练习

// 完成delay函数
// 该函数可以等待一段指定的时间
// 返回Promise
function delay(duration) {return new Promise((resolve, reject) => {setTimeout(() => {resolve();}, duration);});
}// 利用delay函数,等待3次,每次等待1秒,每次等待完成后输出ok
// 等待1秒->ok->等待1秒->ok->等待1秒->ok(async () => {for (let i = 0; i < 3; i++) {await delay(1000);console.log('ok');}
})();// delay(1000)
//   .then(() => {
//     console.log('ok');
//     return delay(1000);
//   })
//   .then(() => {
//     console.log('ok');
//     return delay(1000);
//   })
//   .then(() => {
//     console.log('ok');
//   });
http://www.yayakq.cn/news/779157/

相关文章:

  • 网站轮播图用啥软件做个体户可以做网站吗
  • 网站排名优化外包智能建站系统 网站建设的首选
  • 有哪些网站使用ftp一家专门做内部优惠的网站
  • 搭建企业网站网站模板库免费
  • 自己怎样建企业网站郑州企业网站排名优化哪家好
  • 定制app网站omv wordpress
  • 武义县住房和城乡建设局网站网站网站做代理违法吗
  • 做网站时 404网页如何指向公众号开发小程序开发
  • 西宁网站建设君博正规wordpress解密主题
  • 网站虚拟主机建设注册城乡规划师成绩查询2021
  • 家具行业建设网站网站建设需要提供的资料文档
  • 阜阳网站是网站群建设成本分析
  • 住房和城乡建设部政务服务门户网站免费网址怎么申请注册
  • 公司o2o网站建设上海猎头公司排行榜
  • 国外网站空间需要备案吗正规教育培训机构
  • 网站怎么制作成二维码广告创意设计与鉴赏
  • 门户网站开发 论文东莞企业网站定制设计
  • 珠海微信网站开发电商网站前端模板下载
  • 公司建设网站需要什么资质ip做网站
  • 株洲网站建设的企业重庆人才网
  • 网站开发技术概述重庆简易注销在什么网站做
  • 网站建设综合实训心得体会改 wordpress 主题 颜色
  • 宁波专业外贸网站建设有做门窗找活的网站吗
  • html网页设计网站高端网站建设 选择磐石网络
  • 如何进行电子商务网站推广做电子商务网站需要什么手续
  • 做司法亲子鉴定网站建设银行网站短信错误6次
  • 网站开发目录找人做网站如何担保
  • 网站开发交易网站做盗版视频网站
  • 卡地亚手表官方网站已有网站如何做直播
  • 内江住房和城乡建设厅网站网站美食建设图片