zoukankan      html  css  js  c++  java
  • forEach和for包含异步调用的区别

    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

    请用今天的努力,让明天没有遗憾。
  • 相关阅读:
    IOTest-InputStream-OutputStream
    JSP
    java链表
    区块链
    MySQL常用命令
    jQuery
    javascript
    Nginx
    Linux
    Hive
  • 原文地址:https://www.cnblogs.com/cupid10/p/15617651.html
Copyright © 2011-2022 走看看