嵌套的sqlite3操作导致应用程序阻止

时间:2018-09-23 13:59:15

标签: javascript node.js sqlite

我要从一个表中获取所有寄存器,然后从每个表中获取它们的信息。

let loreItems = []
let loreStatus = 'processing'
let counter = 0

let exec1 = db.prepare('SELECT json FROM DestinyLoreDefinition')
exec1.each(function (err, res) {
  let itemJson = JSON.parse(res.json.replace(/\n/g,"\\n"))

  let exec2 = db.prepare('SELECT json FROM DestinyInventoryItemDefinition WHERE json like \'%"hash":' + itemJson.hash + '%\'')
  exec2.get(function(err2, res2) {

    if (res2 !== undefined) {
      let item = JSON.parse(res2.json)
      loreItems.push(item)
    }

    if (counter == res.length - 1) {
      loreItemsStatus = 'finished'
    }
    counter++;
  })
})

这导致该应用程序的所有路由和进程被阻止。我不知道是否有更好的方法。

0 个答案:

没有答案