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();
}
但是感觉很丑很长。我怀疑我错过了一些简单的东西。有什么建议么?