Как использовать обещание, чтобы вернуть это будущее значение? - PullRequest
0 голосов
/ 31 марта 2020

Упрощенная версия того, что у меня есть:

const getAuthorizedConnection = () => {
    let myAuthorizedConnection;
    flowable.subscribe({
        onComplete: connection => {
            connection
                .authorize(
                    authorizedConnection => {
                        myAuthorizedConection = authorizedConnection;
                    }
                )
                .subscribe(
                    messageFromConnection => {
                        processMessage(messageFromConnection);
                    }
                );
        }
    });
    return myAuthorizedConnection;
}

Ясно написано неправильно, но я не уверен, как это исправить. Я думаю, что правильный способ - это использовать Promise для того, чтобы возвращать authorConnection всякий раз, когда он готов, и сохранять его в переменной, чтобы его можно было повторно использовать в другом месте для доступа к авторизованному соединению. Но я не мог понять, как составить это. Кто-нибудь может помочь?

1 Ответ

0 голосов
/ 31 марта 2020

Можете ли вы дать нам больше информации о flawable? если flawable.subscribe является наблюдателем, а Rx JS является жизнеспособным вариантом, я бы рассмотрел использование чего-то вроде switchMap для преобразования наблюдаемой flowable (и возвращенной связанной) в ответ от .authorize

https://rxjs-dev.firebaseapp.com/api/operators/switchMap

...