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

河南专业网站建设哪家好怎样优化标题关键词

河南专业网站建设哪家好,怎样优化标题关键词,网站栏目列表,百度医院网站建设如果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/338199.html

相关文章:

  • 日本做的中国音乐网站免费建站哪个比较好
  • 做一个网站需要多久网络推广招聘
  • 基于jsp的社团组织网站建设百度竞价排名平台
  • 河南基安建设集团有限公司网站竞价托管咨询微竞价
  • 门户网站设计要点英雄联盟最新赛事
  • 宁波北京网站建设百度总部在哪里
  • 沈阳淘宝网站建设网站设计公司
  • 用腾讯云做淘宝客网站视频下载seo怎么优化效果更好
  • 建设局和住建局区别seo点击排名源码
  • 有哪些好用的网站seo排名影响因素主要有
  • 中国网站建设公司 排名产品推广思路
  • wordpress web.config广州网站营销seo费用
  • 站酷网图片seo技巧与技术
  • 找代理做网站网站域名归属谁做竞价推广这个工作怎么样
  • seo查询站长工具百度指数分析案例
  • wordpress轮播图广告seo引擎优化是做什么的
  • 昆明网站建设排名搜索app下载
  • 上海松江做网站建设免费正规的接单平台
  • 网站目录结构设计应注意的问题上海关键词优化方法
  • 教育培训机构十大排名青岛网络优化厂家
  • wordpress 制作小程序北京云无限优化
  • 管理平台北京搜索引擎关键词优化
  • 乐云seo网站建设公司百度一下首页官网百度
  • 中国做铁塔的公司网站制作网页链接
  • 南宁网站怎么做seo百度广告平台电话
  • 做百科需要发哪些网站徐州网站建设
  • 能看各种网站的浏览器网站建设开发
  • freenom怎么做网站中国十大新闻网站排名
  • 建网站与建网页的区别北京网站优化服务
  • 娱乐网站建设ppt个人如何注册网站