Android Kotlin Что такое Promise? - PullRequest
       3

Android Kotlin Что такое Promise?

0 голосов
/ 04 октября 2019

Я работаю на Android (Kotlin) с WebView, который загружает некоторую Страницу, и у меня есть взаимодействие с этой страницей с @JavascriptInterface

Мой клиент напишет некоторую функцию, которую мне пришлось реализовать, например:

 @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 Object внутри.

Спасибо за вашу помощь

1 Ответ

2 голосов
/ 04 октября 2019

Обещание как шаблон хорошо известен в мире JS, но не столь популярен среди Android людей, возможно, из-за того, что у нас есть очень мощная RxJava библиотека. Но что делать, если вам нужно RxJava только для ответа с одним значением (Single), например, одного запроса сети и операции преобразования пары, например flatMap и map. Если это так, то вы должны рассмотреть шаблон 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 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...