Магия async/await блокирование потока выполнения будет работать если:
- Это выражение должно возвращать Promise
- Этот
Promiseнужно вернуть изasyncфункции илиawaitего вasyncфункции.
Я посмотрел API dd.run. Этот метод не возвращает Promise. Он принимает опциональный третий аргумент-коллбек. Тебе нужно написать обертку вокруг этого метода (или ряда методов), которая будет возвращать Promise.
Ниже не самый гибкий код, но доносит мою мысль. Не проверял работоспосоность, но структурно все корректно.
async function run(db, expr, params) {
return new Promise(function (resolve, reject) {
db.run(expr, params, function (err, res) {
if (err) {
reject(err)
return
}
resolve(res)
})
})
}
async function test1() {
return run(dd, “CREATE TABLE IF NOT EXISTS r(t real(12), yreal(12))”, [])
}
async function test1() {
await run(dd, “CREATE TABLE IF NOT EXISTS r(t real(12), yreal(12))”, [])
}