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

计算机网站开发哪个网站查食品建设好

计算机网站开发,哪个网站查食品建设好,个人发布信息的免费平台,甘肃永靖建设住建局网站前言这个问题是这样产生的#xff1f;某天#xff0c;在学习异步的知识遇到这样一道题#xff1a;使用Promise的方式#xff0c;每隔一秒输出数组中一个值const arr [1, 2, 3] ​ arr.reduce((pre, cur) {return pre.then(() {returnnewPromise((resolve, rejec…前言这个问题是这样产生的某天在学习异步的知识遇到这样一道题使用Promise的方式每隔一秒输出数组中一个值const arr [1, 2, 3] ​ arr.reduce((pre, cur) {return pre.then(() {returnnewPromise((resolve, reject) {setTimeout(() {resolve(console.log(cur))}, 1000);})}) }, Promise.resolve()) 复制代码那这段代码还是挺好了解的相当于Promise.resolve().then(() {returnnewPromise((resolve, reject) {setTimeout(() {resolve(console.log(1))}, 1000);}) }).then(() {returnnewPromise((resolve, reject) {setTimeout(() {resolve(console.log(2))}, 1000);}) }).then(() {returnnewPromise((resolve, reject) {setTimeout(() {resolve(console.log(3))}, 1000);}) }) 复制代码看完之后我就在想如果我在循环中每次输出值之后停止一秒也可以解决于是乎就有了以下代码const arr [1, 2, 3] ​ constsleep (ms) {returnnewPromise((resolve, reject) {setTimeout(() {resolve()}, ms)}) } ​ for (let i 0; i arr.length; i) {console.log(arr[i]);awaitsleep(1000) } 复制代码打印结果也是符合预期的在这里我就产生了第一个疑问await不是要搭配async使用的么这里怎么能单独使用不信你把代码放到浏览器控制台试试接着我把for改成了forEach,发现根本达不到效果第二个疑问产生forEach中await为什么失效了呢arr.forEach(async item {console.log(item);await sleep(1000) }) 复制代码带着这两个疑问那就开始学习起来寻找答案。在for循环中的await记得在学习async/await的时候有这样一句话await只能和async搭配一起使用其实这句话是没有错的。那为什么前面可以直接写await呢因为我是直接写在浏览器控制台的咱们在编辑器写代码的时候一定要套一个async使用的script const arr [1, 2, 3]constsleep (ms) {returnnewPromise((resolve, reject) {setTimeout(() {resolve()}, ms)})}constlogByOneSecond async () {for (let i 0; i arr.length; i) {console.log(arr[i]);awaitsleep(1000)}} logByOneSecond()/script 复制代码所以这就算闹了个笑话哈哈不过当我遇到不理解的时候又多了一个思考方向。好的如上所述await确实发挥了他的作用让JS直到等到了promise返回的处理结果再继续往下执行那for...of,while是不是也可以呢const logByForof async () {for (const item of arr) {console.log(item);await sleep(1000)} } logByForof() 复制代码constlogByWhile async () {let i 0while (i ! arr.length) {awaitsleep(1000)console.log(arr[i]);i} } logByWhile() 复制代码结果也是符合预期可以在循环中使用await并实现效果在forEach循环中的await如一开始在forEach中并没有的到预期的效果首先得到一个结果forEach中async 和await是无效的。那我看到的解释有以下几种JavaScript 中的 forEach不支持 promise 感知也不支持 async 和await所以不能在 forEach 使用 await 。map/forEach内部使用了while结合callback方式来执行函数await不会等待callback的执行forEach 只支持同步代码第二种说法简化以后的伪代码如下while(index arr.length){callback(item, index) } 复制代码map/forEach是简单的执行下回调函数并不会处理异步的情况。即map/forEach 会同时创建出多个回调函数多个回调函数被加上了各自的 async、await如下async (){await sleep(1000); } async (){ await sleep(1000); } async (){ await sleep(1000); } 复制代码各个函数之间是独立的彼此的回调也是独立的请求是异步的彼此之间又没有关联顺序也就自然无法保证总结回顾了 async/await 在循环语句里的使用方法对于普通的 for-loop所有的 await 都是串行调用的可以放心使用包括 while、for-in、for-of 等等;但是在有 callback 的 array 方法如 forEach、map、filter、reduce 等等有许多副作用最好就别使用 await 了。大厂面试题分享 面试题库前端后端面试题库 面试必备 推荐★★★★★地址前端面试题库
http://www.w-s-a.com/news/774140/

相关文章:

  • 建网站需要什么wordpress误删的后果
  • wordpress无插件实现网站地图做阿里巴巴网站店铺装修费用
  • 英文互动网站建设南宁住房和城乡建设局网站
  • 威海微网站建设乐清建网站哪家强
  • 网站和app的开发成本saas系统开发教程
  • ps切片工具做网站大气简洁网站
  • 网至普的营销型网站建设wordpress邮箱验证插件下载
  • 找权重高的网站方法张家港早晨网站建设
  • WordPress数据库添加管理员关键词优化举例
  • 河南国基建设集团--官方网站wordpress qode
  • 做农村电子商务的网站有哪些内容静态网站模板古典
  • 导航网站设计方案个人网站推广方法
  • 网站排名易下拉教程防wordpress花园
  • 计算机网站建设 是什么意思现在网站建站的主流语言是什么
  • php网站跟随导航西安百姓网免费发布信息网
  • 濮阳做公司网站html5 特效网站
  • ppt设计器怎么打开深圳seo网络推广营销
  • 建设银行网站用360浏览器建设信用卡中心网站
  • 创建公司网站 教程广州建设局
  • 详述网站建设的过程简答题ui培训设计怎么样
  • 动易网站官网ppt主题大全素材
  • 怎样用eclipse做网站可以做宣传图的网站
  • 哪里可以做游戏视频网站做网站平台应该注意哪些
  • 网站后期推广是谁来做网页制作步骤作答题
  • 全屋装修设计定制整装成都网站优化多少钱
  • html5购物网站模板一个网站两个数据库
  • 个人网站怎么做微信支付网站建设项目介绍
  • 建网站合同网站适配移动端和PC端
  • 网站建设培训机构哪里好html5开发wap网站
  • 免费自助建站源码学而思网校官网