我有一个带有2个异步调用的应用程序,我需要在第二个工作流中的OnNext被激活之前等待第一个完成,这样如果第一个错误然后第二个没有被执行。但目前第二个在第一次调用返回之前执行。下面给出的是简化代码,请帮助我在这里应用合适的等待机制。我试过等待但是无法正常工作。
public IObservable<dataType> MainMethod()
{
return Observable.Create<dataType>(
(observer) =>
{
AsyncCommandClass cmd = new AsyncCommandClass("commandmethodPAth");
command.CommandCompleted += (sender, args) =>
{
///handle failure
};
this.ExecuteAsyncCommand(cmd);
// Execute the other internal asynchronous workflow
this.Workflow2()
.AsSequential()
.Subscribe(
(next) =>
{
},
(error) =>
{
observer.OnError(error);
},
() => // completed
{
observer.OnNext(new dataType()); // this call should not execute if previous one errors
observer.OnCompleted();
});
return () =>
{
};
});
}