BrightFuturesを使用した非同期処理の場合、
APIから取得した結果を表示するためにUILable等に設定するのは、onSuccess
のスコープ内でやること。
そうしないと非同期処理のため、値がまだ帰ってきていない内に描画処理が走り、想定通りに反映されない。
普段JavaScriptで書いてるときは自然としてそうだが失念してた。
Async/Awaitほしい、、
class SomeViewController: AutoLayoutViewController {
private var someObj:SomeObject = SomeObject()
private var someLabel: UILabel
override func viewDidLoad() {
[BrightFuturesを使った非同期処理]
.onSuccess { success in
someObj = success
// ここが正解
self.someLabel.text = success.text
}
// ここでやると反映されない
// self.someLabel.text = success.text
}
}