var disposable: Disposable?
var disposeBag: DisPoseBag = Dispose
@IBAction func onLoadImage(_ sender: Any) {
		imageView.image = nil
		
		disposable = 
		rxswiftLoadImage(from: loadingImageUrl)
				.oberveOn(MainScheduler.instance)
				.subscribe({ result in
						switch result {
						case let .next(image):
								self.imageView.image = image
						case let .error(err):
								print(err.localizedDescription)
						case .completed:
								break

						}
				}).disposed(by: disposeBag)

		diposeBag.insert(diposable) 
}

@IBAction func onCancel(_ sender: Any) {
		// 동작중에 작업을 취소 시키는 행위.
		diposable?.dispose()
		

		// disposeBag에 담겨있는 작업들 다 취소
		disposeBag = DisposeBag() // 새로 초기화 하면서 기존에 있던 작업들 dispose
}

func rxswiftLoadImage(from imageUrl: String) -> Observable<UIImage?> {
		return Observable.create { seal in
				asyncLoadImage(from: imageUrl) { image in
						seal.onNext(image)
						seal.onCompleted()
				}
				return Disposabel.create()

		}

}