通缉行为:
subject = BehaviorSubject.create(1);
subject.subscribe(number -> print(number), error -> print(error));
subject.onNext(2);
subject.onNext(3);
subject.onError(new RuntimeException("I'm an error"));
subject.onNext(4);
subject.onNext(5);
使用此输出:
1
2
3
I'm an error
4
5
我的问题是onNext
onError
工作后RxJava
(这是 public static List<string> GetAutoCompleteData(string username)
{
List<string> result = new List<string>();
using (SqlConnection con = new SqlConnection("Data Source=SureshDasari;Integrated Security=true;Initial Catalog=MySampleDB"))
{
**//check if user name is not null**
if(null != username){
using (SqlCommand cmd = new SqlCommand("select DISTINCT UserName from UserInformation where UserName LIKE '%'+@SearchText+'%'", con))}
else{
using (SqlCommand cmd = new SqlCommand("select UserName from UserInformation, con))}
}
{
con.Open();
cmd.Parameters.AddWithValue("@SearchText", username);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
result.Add(dr["UserName"].ToString());
}
规则之后的意图),但我需要有弹性错误,同时也将它们传递给流(向用户显示一些反馈)。
有办法做到这一点吗?
答案 0 :(得分:3)
如果您想要忽略onError
和onComplete
,则会有RxRelay库。
说明
主题对于弥合非Rx API之间的差距很有用。但是,它们以有害的方式处于有状态:当它们收到onComplete或onError时,它们不再可用于移动数据。这是可观察的合同,有时它是理想的行为。大部分时间都没有。
继电器只是没有上述属性的主题。它们允许您轻松地将非Rx API桥接到Rx,而无需担心意外触发终端状态。
答案 1 :(得分:0)
尝试在订阅
之前使用.onErrorReturn()