RxJava2中的async Volley StringRequest?

时间:2017-06-07 12:15:45

标签: android android-volley rx-java2

我想通过 RxJava2 中的 Volley StringRequest 从服务器获取数据,但我找不到如何为它创建一个Observable。
在一些文章中,我发现 Observable.fromCallable 在没有任何样本的情况下很有用 请告诉我如何使用RxJava2调用async Volley stringRequest?

提及:我不想使用 Future

1 个答案:

答案 0 :(得分:2)

阅读文档,http://reactivex.io/RxJava/2.x/javadoc/io/reactivex/Single.html#fromCallable(java.util.concurrent.Callable)用于包装同步请求。由于StringRequest是异步的,因此您需要Observable.create或更好地查找Single.createmysql> desc users; +-------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | fname | varchar(50) | NO | | NULL | | | lname | varchar(50) | NO | | NULL | | | uname | varchar(20) | NO | | NULL | | | email | text | NO | | NULL | | | contact | bigint(12) | NO | | NULL | | | profile_pic | text | NO | | NULL | | | password | varchar(20) | NO | | admin | | +-------------+-------------+------+-----+---------+----------------+ 8 rows in set (0.00 sec) mysql> ALTER TABLE users ADD UNIQUE(email); ERROR 1170 (42000): BLOB/TEXT column 'email' used in key specification without a key length mysql> mysql> ALTER TABLE users MODIFY email VARCHAR(254); Query OK, 9 rows affected (0.02 sec) Records: 9 Duplicates: 0 Warnings: 0 mysql> ALTER TABLE users ADD UNIQUE(email); Query OK, 0 rows affected (0.02 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> desc users; +-------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | fname | varchar(50) | NO | | NULL | | | lname | varchar(50) | NO | | NULL | | | uname | varchar(20) | NO | | NULL | | | email | varchar(254) | YES | UNI | NULL | | | contact | bigint(12) | NO | | NULL | | | profile_pic | text | NO | | NULL | | | password | varchar(20) | NO | | admin | | +-------------+--------------+------+-----+---------+----------------+ 8 rows in set (0.00 sec) mysql> 。由于它是RxJava的一个高级部分,我建议您查看已经存在的包装器,如VolleyXRxVolley,或者甚至是Volley的本地RxJava替代品。