2017-04-19 9 views
8

कोड नीचे देखें।क्या वेरिएबल <T> के इनिट मान को ट्रिगर नहीं करने का कोई तरीका है?

class ViewController4: UIViewController { 
    var disposeBag = DisposeBag() 
    let v = Variable(0) 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     v.asObservable() 
      .subscribe(onNext: { print($0) }) 
      .disposed(by: disposeBag) 

     v.value = 1 
    } 
} 

जब यह चलता है, यह

0 
1 

प्रिंट होगा हालांकि, मैं यह 0 पर चलने के लिए नहीं करना चाहते हैं, या कह 0 सिर्फ v आरंभ करने के लिए प्रयोग किया जाता है मूल्य है। क्या मै वह कर सकता हूं? या जब मैं इसका उपयोग करता हूं तो मुझे उस समय कोड को स्थगित करना होगा?

उत्तर

14

आप एन पहले तत्व उत्सर्जित करने के लिए ऑपरेटर .skip का उपयोग कर सकते हैं। तो आपके मामले में skip(1) init मान को दबाएगा।

http://reactivex.io/documentation/operators/skip

v.asObservable().skip(1) 
     .subscribe(onNext: { print($0) }) 
     .disposed(by: disposeBag) 

v.value = 1 
//Output : 1 

v.value = 2 
v.value = 3 
//Output : 1 2 3 
+0

बहुत अच्छा और धन्यवाद। –

संबंधित मुद्दे

 संबंधित मुद्दे