Android Kotlin Promise 是啥?

Posted

技术标签:

【中文标题】Android Kotlin Promise 是啥?【英文标题】:Android Kotlin what is Promise?Android Kotlin Promise 是什么? 【发布时间】:2020-02-02 15:36:43 【问题描述】:

我在 android (Kotlin) 上使用加载一些页面的 WebView 工作,并且我与这个页面有交互 @javascript接口

我的客户写了一些我必须实现的功能,例如:

 @JavascriptInterface
    fun fileExists(path: String): Promise<Boolean>? 
        return null
    

但是没有找到类Promise,也不知道它是什么,需要使用哪个库。

他唯一的答案是“看看 Cordova 如何将 Promise 转换为 Java 对象”

也许有人可以帮助我,或者只是提供一些信息,现在我什至不知道方向

我试过这个 2 实现“org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version” 实现“org.jetbrains.kotlin:kotlin-stdlib-js:$kotlin_version”

但里面没有 Pormise 对象。

感谢您的帮助

【问题讨论】:

【参考方案1】:

Promise 作为一种模式在JS 世界中是众所周知的,但它在Android 的人们中并不那么流行,可能是因为我们有一个非常强大的RxJava 库。但是,如果您只需要 RxJava 用于单值响应(Single),例如单个网络请求和像 flatMapmap 这样的耦合转换操作,该怎么办。如果是这种情况,那么您应该考虑适用于单值响应的 Promise 模式。

Promise 的使用示例:

fun postItem(item: Item) 
    preparePostAsync() 
        .thenCompose  token -> 
            submitPostAsync(token, item)
        
        .thenAccept  post -> 
            processPost(post)
        



fun preparePostAsync(): Promise<Token> 
    // makes request an returns a promise that is completed later
    return promise 

【讨论】:

我的问题是“Promise”类不存在。我需要添加哪个库才能拥有它?

以上是关于Android Kotlin Promise 是啥?的主要内容,如果未能解决你的问题,请参考以下文章

在Android Kotlin中,将onclick事件传递给viewholder的正确方法是啥?

android kotlin 确保 viewPager2 pageItem resume 仅在屏幕上触发的当前方法是啥?

使用 kotlin 创建 Web 应用程序的最佳方法是啥?

Android快速转战Kotlin教程

Android 应用的 Firestore 安全设置应该是啥? [关闭]

`Promise.reject` 的可观察等效项是啥