操作组合注记

优质
小牛编辑
118浏览
2023-12-01

操作组合注记

除了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,以获得完整的块细节,这是传递给可观察者的订阅服务器的细节。