Мне нужно вызвать последовательность функций, чтобы получить всю информацию, необходимую для уведомления.Сначала подпишитесь, чтобы открыть сеанс, затем queryNotification
, чтобы прослушать все входящие уведомления, и как только уведомление получено, нужно позвонить getNotificationAttrs
с notificationId
, возвращенным в queryNotification
, затем вызвать getAppAttributes
сappIdentifier
возвращается в getNotificationAttrs
, и мне нужен объединенный результат queryNotification
, getNotificationAttrs
и getAppAttributes
.Как выглядят функции ниже:
func subscribeNotification() -> Single<Info>
func queryNotification() -> Observable<Notification>
func getNotificationAttrs(uid: UInt32, attributes: [Attribute]) -> Single<NotificationAttributes>
func getAppAttributes(appIdentifier: String, attributes: [AppAttribute]) -> Single<NotificationAppAttributes>
Хитрость в том, что queryNotification
возвращает Observable и оба getNotificationAttrs
и getAppAttributes
возвращают Single.То, что я имею в виду, соединяя их вместе, выглядит так:
subscribeNotification()
.subscribe(onSuccess: { info in
queryNotification()
.flatMap({ notification in
return getNotificationAttributes(uid: notification.uid, attributes: [.appIdentifier, .content])
})
.flatMap({ notifAttrs
return getAppAttributes(appIdentifier: notifAttrs.appIdentifier, attributes: [.displayName])
})
.subscribe {
// have all the result from last two calls
}
})
Это выполнимо?Любое направление ценится!Спасибо!