``` class UploadManager { private val scope = S...
# rx
u
Copy code
class UploadManager {
	
	private val scope = Scope()

	1
	fun upload(...): Single {
		val requestId = generateId()
		return scope.add(requestId) {
			Single.whatever
				.map { .. }
				.filter { .. }
				...
		}
	}

	2
	fun upload(...): Single {
		val requestId = generateId()
		return Single.whatever
				.map { .. }
				.filter { .. }
				...
				.scopedTo(scope)
	}

	fun cancel(requestId) {
		scope.cancel(requestId)
	}

	fun onClose() {
		// upload manager goes away (logout)
		scope.cancelAll()

	}
}