Я спрашиваю себя, как я могу использовать сопрограммы Котлина вместе с некоторыми модулями узлов.Я пытаюсь написать сервер node.js в Kotlin.
Было бы просто продолжать использовать известные обратные вызовы JavaScripts или, возможно, Promises, но похоже, что обратные вызовы Kotlin были бы лучшим вариантом.Однако для сервера node.js мне нужно использовать библиотеки MySQL или bcrypt, работающие только с обратными вызовами или Promises, но не с сопрограммами, потому что он не написан на Kotlin соответственно.
Документация Kotlin мне не помогает, говорит JetBrainsМне нужно только написать свой метод, как будто он работает синхронно, и использовать другие функции Kotlin, точно так же, как они выполнялись синхронно, но функции, написанные на нативном JavaScript, не знают ключевое слово типа «suspend», или я должен просто игнорировать этот факт?
Примером может быть следующая функция:
val bcrypt = require("bcrypt") // require by node.js
fun comparePass(hash: String, pass: String, callback: (Boolean) -> Unit) {
bcrypt.compare(pass, hash, { err: dynamic, res: dynamic ->
callback(err == null)
})
}
Как я могу написать эту функцию, используя сопрограммы и эту библиотеку?