【问题标题】:Is this Loop executed synchronous?这个循环是同步执行的吗?
【发布时间】:2019-12-14 23:19:32
【问题描述】:

我已经编写了这个循环来迭代我从 CouchDB 数据库中得到的一些数据。我想知道这个循环是否是同步执行的,或者我是否必须使用 async/await 来处理它。

database.view('test', 'getAllowedTracker', function(err, body) {
  for(let i = 0; i < body.rows.length; i++){
    let array = body.rows[i].value;
    var newArray = array.filter((value) => value!='tracker8');
    database.atomic('test', 'updatetest', body.rows[i].key, {field: "tracker", value: newArray}).then((response) => {
    });
  }
})

它似乎是同步的,但我不太确定。如果过滤器函数在更新(database.atomic...)之后执行,那将是致命的。

我不习惯使用异步编程,所以

感谢您的帮助。

【问题讨论】:

  • 它是异步的,因为您没有以任何方式处理then
  • 循环同步运行,then 回调不会。

标签: javascript node.js couchdb-nano


【解决方案1】:

在 JavaScript 中 for 循环和 Array.filter() 是同步的。你的代码很好,没什么好担心的。

JavaScript 将在回调和承诺中异步运行。你可以谷歌了解更多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-09
    • 2016-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-30
    • 1970-01-01
    相关资源
    最近更新 更多