def resource():
    print("create resource at {}".format(datetime.datetime.now()))

    def dispose():
        print("dispose resource at {}".format(datetime.datetime.now()))

    return AnonymousDisposable(dispose)
예제 #2
0
        def action(scheduler, i):
            remaining = self._process_request(i)
            stopped = self.has_completed and self.has_failed
            if not stopped and remaining > 0:
                self.requestedCount = remaining

            def dispose():
                self.requested_count = 0
            return AnonymousDisposable(dispose)
예제 #3
0
 def _subscribe_core(self, observer: Observer):
     self.observer = observer
     # flush buffer
     for item in self.buffer:
         observer.on_next(item)
     self.buffer = None
     if self.error:
         observer.on_error(self.error)
     elif self.completed:
         observer.on_completed()
     return AnonymousDisposable.create(self.dispose)
    def subscribe(self,
                  on_next=None,
                  on_error=None,
                  on_completed=None,
                  observer: Observer = None):
        p = self.publisher
        if self.is_disposed is True:
            if observer is not None:
                observer.on_completed()
            return AnonymousDisposable(noop)

        if p is not None:
            subscription = p.subscribe(on_next=on_next,
                                       on_completed=on_completed,
                                       on_error=on_error,
                                       observer=observer)
            if observer is not None:
                observer.on_next(self.value)
            return subscription
        else:
            if observer is not None:
                observer.on_completed()
            return AnonymousDisposable(noop)
예제 #5
0
    def subscribe(observer, scheduler=None):
        scheduler = scheduler or current_thread_scheduler
        iterator = iter(iterable)
        disposed = False

        def action(_: Scheduler, __: Any = None):
            nonlocal disposed

            try:
                while not disposed:
                    value = next(iterator)
                    observer.on_next(value)
            except StopIteration:
                observer.on_completed()
            except Exception as error:  # pylint: disable=W0703
                observer.on_error(error)

        def dispose():
            nonlocal disposed
            disposed = True

        disposable = AnonymousDisposable(dispose)
        return CompositeDisposable(scheduler.schedule(action), disposable)
예제 #6
0
파일: disposable.py 프로젝트: xyicheng/RxPY
 def empty() -> 'Disposable':
     from rx.disposables import AnonymousDisposable
     return AnonymousDisposable(noop)
예제 #7
0
파일: disposable.py 프로젝트: xyicheng/RxPY
 def create(action) -> 'Disposable':
     from rx.disposables import AnonymousDisposable
     return AnonymousDisposable(action)
예제 #8
0
def empty(cls):
    return AnonymousDisposable(noop)
예제 #9
0
def create(cls, action):
    return AnonymousDisposable(action)