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

河南专业网站建设哪家好企业网站优化技巧

河南专业网站建设哪家好,企业网站优化技巧,wordpress获取当前分类不带连接,怎样用css做网站如果js一个代码块中有耗时操作,但是return的结果可能会依赖这个耗时操作的返回,怎么解决? 一般人可能想到的方法就是async/await。 没错,正常情况下是这样的,伪代码如下: async OuterFun() { const resul…

如果js一个代码块中有耗时操作,但是return的结果可能会依赖这个耗时操作的返回,怎么解决?

一般人可能想到的方法就是async/await

没错,正常情况下是这样的,伪代码如下:

async OuterFun() {

   const result = await timeCostFunc() // timeCostFunc是耗时操作 

   ..... 

 return finalResult  // finalResult依赖于上面的耗时操作返回的result

}

 上面需要注意的是耗时操作的函数必须返回一个promise!

 但是下面这种情况使用async/await就没有效果了

async _normalizeSongs(songs) {let ret = [];for (const song of songs) {const songItem = await createSong(song); // createSong是耗时操作ret.push(songItem);}return ret;}

这里的原因就在于: 遍历数组这个步骤并不是完全同步的,即便使用了async/await,也是这样。

换句话说:由于js异步执行的原因,而遍历数组本身并不是一个完全同步阻塞的操作(就算有async/await关键字), return ret这个操作可能会在for循环之前就执行了,所以返回的是一个空数组

那么问题的关键就是:要把for循环和数组push整个代码块变成一个完全同步阻塞的操作!

解决办法:把需要完全同步的部分整体封装成一个promise, 然后再通过await 这个promise同步阻塞获取结果,这样就能保证了:最终return会等待前面所有异步代码执行完毕,那么就不会return空值了

代码如下:

async  _normalizeSongs(songs) {// 将涉及到数组的耗时操作整体封装成一个promiseconst songPromise = new Promise(async (resolve) => {let ret = [];for (const song of songs) {const songItem = await createSong(song);ret.push(songItem);}resolve(ret); // 把耗时操作的结果丢给resolve。});// 等待这个promise同步阻塞获取结果const resultSongs = await songPromise;return resultSongs;}

http://www.dtcms.com/wzjs/126900.html

相关文章:

  • 太原网站建设baidu手机建网站软件
  • 下列不属于网站开发技术的是站长之家app下载
  • 网站用什么字体做正文百度相册登录入口
  • 网站建设课程的感受深圳市龙华区
  • 修改wordpress登陆界面seo提高网站排名
  • 网站运营维护如何利用seo赚钱
  • wordpress 调用画廊seo营销推广多少钱
  • 网站建设技巧讠金手指排名26网络营销策略的制定
  • 免费手机网站建站博客网站登录入口
  • 南宁网站建设人才招聘开封seo公司
  • 网上做游戏赚钱的网站百度广告安装入口
  • 免费做片头的网站手机百度经验首页登录官网
  • 新郑郑州网站建设长沙seo推广优化
  • 丹东网站开发网络推广好做吗?
  • 天津市住房和城乡建设局网站企业网站推广渠道有哪些
  • 如何做地方网站推广长春seo网站优化
  • 一级造价师准考证打印时间南宁优化推广服务
  • 益阳住房和城乡建设局网站百度搜索词热度查询
  • 北京市朝阳区住房建设网站蜜雪冰城推广软文
  • 做网站拍幕布照是什么意思上海搜索引擎优化seo
  • 整网站代码 带数据 免费 下载站长工具之家seo查询
  • iis不用dns解析还有什么办法也能一个ip对应多个网站吗宁波seo推荐
  • 厦门旅游网站建设目的深圳网站seo推广
  • 南京做网站seo技术教程
  • 建手机网站的软件有哪些宁波seo教程推广平台
  • wordpress多站点 用户同步佛山网站优化排名推广
  • 网站开发图标下载百度笔记排名优化
  • php网站 更改logo排名前十的大学
  • 腾讯云做网站深圳推广公司哪家最好
  • 网站后台管理优化个人接外包的网站