Skip to content

Instantly share code, notes, and snippets.

// Reference: [Transforming_Operators.xcplaygroundpage](https://github.com/ReactiveX/RxSwift/blob/master/Rx.playground/Pages/Transforming_Operators.xcplaygroundpage/Contents.swift)
let disposeBag = DisposeBag()
struct Player {
var score: Variable<Int>
}
let 👦🏻 = Player(score: Variable(80))
let player = Variable(👦🏻)
player.asObservable()
button.rx.tap
.subscribe(onNext: { [weak self] in
API.fetchData
.subscribe(onNext: { data in
self?.updateUI(with: data)
})
.disposed(by: self?.disposeBag!)
})
.disposed(by: disposeBag)
button.rx.tap
.flatMap { API.fetchData }
.subscribe(onNext: { data in
self?.updateUI(with: data)
})
.disposed(by: disposeBag)
let disposeBag = DisposeBag()
struct Player {
var level: Variable<Int>
}
// players
let killua = Player(level: Variable(50))
let gon = Player(level: Variable(50))
player.asObservable()
.flatMapLatest { $0.level.asObservable() }
.subscribe(onNext: { print($0) })
.disposed(by: disposeBag)
player.onNext(killua) // 50
killua.level.value = 51 // 51
player.onNext(gon) //50
gon.level.value = 51 // 51
player.asObservable()
.flatMapFirst { $0.level.asObservable() }
.subscribe(onNext: { print($0) })
.disposed(by: disposeBag)
player.onNext(killua) // 50
killua.level.value = 51 // 51
player.onNext(gon) // level of gon isn't printed.
gon.level.value = 51 // new level of gon also isn't printed.
let killua = Player(level: Variable(50))
let gon = Player(level: Variable(50))
let bisque = Player(level: Variable(70))
let player = PublishSubject<Player>()
player.asObservable()
.flatMapWithIndex { player, index -> Observable<Int> in
if index < 2 {
return player.level.asObservable()
}
@shoheiyokoyama
shoheiyokoyama / delete-mergepbx.sh
Last active November 12, 2021 08:17
Script to delete mergepbx
#!/bin/sh
MERGEPBX_TARGET=mergepbx
MERGEPBX_PREFIX=/usr/local/bin
MERGEPBX_BUILD_DIR=/tmp
echo "Deleting mergepbx..."
git config --global --unset merge.mergepbx.name
git config --global --unset merge.mergepbx.driver