- Hands-On Reactive Programming with Python
- Romain Picard
- 278字
- 2021-06-24 18:25:24
The from_callback operator
The from_callback operator is a higher order function. It returns a function that returns an observable. This observable emits a single item: the result of a callback function provided as a parameter of the operator. This callback function is called when the observable is being subscribed. The marble diagram of this operator is shown in the following figure:
Its prototype is as follows:
Observable.from_callback(func, selector=None)
The return value of the from_callback operator is a function. This function returns an observable, and must be called with the parameters to pass when func is called later on. The func callback is called when the of observable is being subscribed.
An optional selector parameter can be provided. This is a function called with the result of func as input parameters. When the selector parameter is provided, the item emitted on the observable is the return value of the selector parameter.
This operator does not accept a scheduler parameter. The whole call flow is always synchronous.
The following code is an example of its usage:
def foo(what, handler):
print("foo: {}".format(what))
handler("hello " + what)
callback = Observable.from_callback(foo)
cbk_obs = callback("world")
print("subscribing...")
cbk_obs.subscribe(
on_next=lambda i: print("item: {}".format(i)),
on_error=lambda e: print("error: {}".format(e)),
on_completed=lambda: print("completed")
)
When from_callback is called, a function is returned and stored in the callback variable. This callback operator is then invoked with the world parameter. The result of this call is an observable whose single item is the result of foo being called with the world parameter. Upon subscription, foo is called and a hello world item is received:
subscribing... foo: world item: hello world completed
- Linux運維之道(第3版)
- Windows Vista基礎與應用精品教程
- 阿里云數字新基建系列:云原生操作系統Kubernetes
- Mastering Distributed Tracing
- 深入理解eBPF與可觀測性
- Linux自動化運維:Shell與Ansible(微課版)
- Mobile First Design with HTML5 and CSS3
- Mastering Reactive JavaScript
- 一學就會:Windows Vista應用完全自學手冊
- INSTANT Galleria Howto
- 寫給架構師的Linux實踐:設計并實現基于Linux的IT解決方案
- Windows 8實戰從入門到精通(超值版)
- 分布式高可用架構之道
- Windows 7實戰從入門到精通(超值版)
- Java EE 7 Developer Handbook