操作组合注记
除了send()
和sendAsync
之外,所有JSON-RPC方法在web3j中都实现了支持observable()方法来创建可观察的异步执行请求。这使得将JSON-RPC调用组合成新的函数是非常容易和直接的。
例如, blockObservable本身由许多单独的JSON-RPC调用组成:
public Observable<EthBlock> blockObservable(
boolean fullTransactionObjects, long pollingInterval) {
return this.ethBlockHashObservable(pollingInterval)
.flatMap(blockHash ->
web3j.ethGetBlockByHash(blockHash, fullTransactionObjects).observable());
}
在这里,我们首先创建一个可观察的,它提供每个新创建的块的块哈希的通知。然后,我们使用flatMap
调用ethGetBlockByHash
,以获得完整的块细节,这是传递给可观察者的订阅服务器的细节。