AsycSubject<Unit>() sub;
// stuff
if(!sub.HasFired())
// Do stuff
現在の最善の試みは次のとおりです。
public static bool HasFired<T>(this AsyncSubject<T> sub)
{
AsyncSubject<bool> ret = new AsyncSubject<bool>();
sub.Timeout(TimeSpan.FromMilliseconds(20))
.Subscribe(_ =>
{
ret.OnNext(true);
ret.OnCompleted();
},
ex =>
{
ret.OnNext(false);
ret.OnCompleted();
});
return ret.First();
}
しかし、それは非常に醜く、長く感じます。私は単純なものが欠けていると思います。助言がありますか?