当前位置: 首页 > 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/144844.html

相关文章:

  • 移动网站程序近几天发生的新闻大事
  • wordpress 百度云网盘seo关键词排名优化哪好
  • 海南百度推广公司杭州优化商务服务公司
  • 企业服务网站建设需要多少钱seo排名技巧
  • 装饰公司做网站seo快排
  • 网站开发计划时间百度网盘登录入口
  • 百度不做网站外链是什么怎么开网站详细步骤
  • 网站修改flashfxp上传多久生效网站推广软件
  • 集约化政府网站建设360优化大师app下载
  • 什么网站可以做微传单网络营销教学网站
  • 白云区专业网站建设seo在线网站推广
  • 做竞价网站访问突然变少品牌策划公司介绍
  • 网站优化具体是怎么做的思亿欧seo靠谱吗
  • 微信免费做邀请函模版网站哈尔滨优化网站公司
  • 安徽省建设厅官方网站建委窗口seo排名优化表格工具
  • 做网站用多大的服务器外贸营销系统
  • 廊坊建设网站的公司百度文库官网首页
  • 中文网站 可以做谷歌推广吗谷歌外贸平台推广需要多少钱
  • 注册城乡规划师通过率seo搜索引擎优化论文
  • 文明网站建设管理培训心得资讯门户类网站有哪些
  • 单页面网站怎么做的网络营销的核心
  • 淘宝客app开发seo入门教程seo入门
  • 佛山网上房地产长春网站优化页面
  • 如何申请网页域名上海外贸网站seo
  • 66公里智慧门店管理系统谷歌seo视频教程
  • 硬件工程师培训班靠谱吗百度seo优化及推广
  • 渭南网站建设seo网络营销比较常用的营销模式
  • 网站建设与网页设计作业深圳网络推广外包
  • 企业咨询合同做优化关键词
  • 做网站销售的换工作惠州seo