Anko 执行 sqlite 请求但不执行下一行

Anko's execute the sqlite request but don't execute the next lines

我想在 Android 上对我的内部数据库发出请求,但是当我的请求 Anko 完成后,UiThread 中的行不会立即完成。

为了解释发生了什么,行 "Log.d" 在 UiThread

之前执行

你能帮帮我吗?

for(i in 0 until jsonArrayM.length()) {
        val json = jsonArrayM.getJSONObject(i)
        doAsync {
            val carteByName = bdd.getDatasByName(json.get("role").toString())
            uiThread {
                json.put("id", carteByName[0].id)
                json.put("image", carteByName[0].imageCarte)
                json.put("nuit1", carteByName[0].premiereNuit)
                json.put("posNuit1", carteByName[0].positionPremiereNuit)
                json.put("autresNuits", carteByName[0].nuitSuivante)
                json.put("posAutresNuits", carteByName[0].positionNuitSuivante)
            }
        }
        jsonArray.put(json)
    }
    Log.d("Verif", jsonArray.toString())

doAsync 中的块在后台线程中 异步完成 ,而 uiThread 中的块仅在异步块的末尾完成(但在 UI/Main 线程上)。
另一方面,Log在循环后同步执行。
所以预计async块里面的代码是在同步代码之后执行的。