将参数从订阅块或错误块传递到 'finally' 块
pass argument from subscribe block or error block to 'finally' block
有没有办法在不使用此关键字的情况下将参数从订阅块或错误块传递到 'finally' 块。我下面的尝试不起作用
this.service.create()
.pipe(first())
.subscribe (
(resp) => {
let argumentToFinally = '';
if (!!resp.taskInfo) {
argumentToFinally = this.showError(resp.taskInfo);
} else {
close();
// if else block, 'argumentToFinally' is still ''
}
},
(error) => {
this.isCallingApi = false;
argumentToFinally = this.showError('create', undefined, error);
},
(argumentToFinally) => {
close(argumentToFinally)
});
close(argumentOfFinally?: any) {
if (!!argumentOfFinally) {
..
}
this.closeWizard();
}
- 您只能在
finally
块中使用全局变量 (this.variableName),因为 finally
块不接受任何参数。
finally
块不会在error
块之后调用,因为发生错误时订阅被取消。
查看更多信息 -> Using observables to pass values
有没有办法在不使用此关键字的情况下将参数从订阅块或错误块传递到 'finally' 块。我下面的尝试不起作用
this.service.create()
.pipe(first())
.subscribe (
(resp) => {
let argumentToFinally = '';
if (!!resp.taskInfo) {
argumentToFinally = this.showError(resp.taskInfo);
} else {
close();
// if else block, 'argumentToFinally' is still ''
}
},
(error) => {
this.isCallingApi = false;
argumentToFinally = this.showError('create', undefined, error);
},
(argumentToFinally) => {
close(argumentToFinally)
});
close(argumentOfFinally?: any) {
if (!!argumentOfFinally) {
..
}
this.closeWizard();
}
- 您只能在
finally
块中使用全局变量 (this.variableName),因为finally
块不接受任何参数。 finally
块不会在error
块之后调用,因为发生错误时订阅被取消。
查看更多信息 -> Using observables to pass values