首页 > 其他 > 详细

forEach和for包含异步调用的区别

时间:2020-11-26 18:18:48      阅读:29      评论:0      收藏:0      [点我收藏+]

forEach和for包含异步调用的区别

作为for循环的增强版,forEach在遍历数组时书写更简洁、可读性也更强。但是当循环中包含异步操作时可能会遇一些坑。

doAdd(e) {
    if (e.keyCode == 13) {
      if (!this.todolistHasSearch(this.todoList, this.searchDate)) {
        this.todoList.push({
          title: this.searchDate,
          state: 0
        })
      } else {
        alert("事件已经存在")
      }
      this.searchDate = ‘‘
    }
  }
  todolistHasSearch(todolist: any, Search: any) {
    // 异步存在问题
    // todolist.forEach(val => {
    //   if (val.title == Search) {
    //     return true
    //   }
    // });

    for (let i = 0; i < todolist.length; i++) {
      if (todolist[i].title == Search) {
        return true
      }
    }
    return false
  }
结论

for循环中会等异步调用完成后再执行后面的语句

forEach中包含异步调用时会直接执行后面的语句

如果循环中包含了异步调用、并且循环后的同步操作调用了遍历后的结果,应该使用for循环代替forEach

forEach和for包含异步调用的区别

原文:https://www.cnblogs.com/cupid10/p/14042522.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!