我如何从 Save()
方法返回成功。
public SaveItem() {
if(save()){ // The goal is to use save method like this
// Close pop up;
}
public SaveAndNew() {
if(save()){ // The goal is to use save method like this
// Create new item;
}
private save() {
let issuccess = false;
this.myservice.AddParty(newUserObject)
.subscribe(data => {
if (data['status'].toString() === '1') {
return issuccess = false;
} else {
return issuccess = true;
}
},
(er) => {
return issuccess = false;
});
}
- 如果我有
save(): boolean
它会抛出错误Must return a value
如果在订阅之外返回issuccess
它总是返回错误值。
我如何等待保存函数并根据响应返回特定值?
我读过有关回调的内容,它似乎并不优雅,有什么优雅的方法可以做到这一点
callbacks-vs-promises-vs-rxjs-vs-async-awaits
如果是 C# 我会这样做
var isSuccess = await SaveAsync(party);
最佳答案
你可以让你的保存方法返回一个 bool 值的可观察值
public SaveAndNew() {
this.save().subscribe(success =>
{
if(success)
{
// Create new item;
}
});
private save() : Observable<boolean> {
return this.myservice
.AddParty(newUserObject)
.map(data=> data['status'].toString() === '1')
.catch(err => Observable.of(false));
}
关于angular - 从订阅 typescript 返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48879798/