【发布时间】:2018-12-09 05:09:55
【问题描述】:
我在问自己如何将 Kotlin 的协程与一些节点模块一起使用。 我正在尝试在 Kotlin 中编写一个 node.js 服务器。
继续使用 JavaScript 著名的回调或者 Promises 会很简单, 但看起来 Kotlin 回调将是更好的选择。 但是对于 node.js 服务器,我需要使用 MySQL 或 bcrypt 库,它们只能用于回调或 Promises,但不能用于协程,因为它不是分别用 Kotlin 编写的。
Kotlin 文档对我没有帮助,JetBrains 说我只需要像同步运行一样编写我的方法,并像同步运行一样使用其他 Kotlin 函数,但是用原生 JavaScript 编写的函数不知道关键字 like “暂停”,还是我应该忽略这个事实?
一个例子是下面的函数:
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)
})
}
如何使用协程和这个库编写这个函数?
【问题讨论】:
标签: javascript node.js kotlin node-modules kotlin-coroutines