我在 Angular 中使用我自己的数据服务,save()
方法是在服务器端运行创建或更新。但是在向服务器发送数据之前,需要检查数据是否有效。
如果数据无效,与服务器的通信将不会发生。
这是代码:
save(data: T): Observable<boolean> {
const preparedData = JSON.stringify(data.prepareToSave());
if (!data.isValid) {
// if data is invalid we should return before send datas to server
return new Observable<T>().pipe(map(() => false));
}
if (!data.id) {
// create
return this.http.post(this.url, preparedData, this.options)
.pipe(map(() => true));
} else {
// update
return this.http.put(this.url + '/' + data.id, preparedData, this.options)
.pipe(map(() => true));
}
}
现在,如果data
无效,我需要返回Observable<boolean>
with false
。
在组件中,我有以下代码:
saveDatas() {
this.dataService.save(this.customer).subscribe( (resolve: boolean) => {
if (resolve) {
// save OK
} else {
// save failed (1)
}
}, (error: any) => {
// save failed (2)
});
}
如果由于this.customer.isValid
is导致保存失败,false
那么我希望从 dataService 中subscribe
获取。false
正是从这一行:
if (!data.isValid) {
// if data is invalid we should return before send datas to server
return new Observable<T>().pipe(map(() => false));
}
但是出了点问题,我不知道出了什么问题。
为什么不返回数据服务false
?