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

  • 相关阅读:
    【转载】关于C#中动态加载AppDomain的问题
    poj2239
    poj2231
    poj2229
    poj2234
    poj2236
    前 路
    只含一个单词的句子
    做人准则
    改变人生的32句励志名言
  • 原文地址:https://www.cnblogs.com/cupid10/p/14042522.html
Copyright © 2011-2022 走看看