首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检查记录是否更新成功或插入成功

如何检查记录是否更新成功或插入成功
EN

Stack Overflow用户
提问于 2020-01-30 02:22:13
回答 3查看 449关注 0票数 0

我有Angular 7-8项目的后端是Node.JS,我找不到一个如何检查我的记录是否在数据库中成功插入或更新的解决方案。

这是我的service.ts文件

代码语言:javascript
运行
复制
  UpdateData(data, id) {
  try {
   return this.http.post(this.baseurl + "/update/" + id, data)
   .subscribe(result => console.log(result));

  } catch (err) {
    console.log("-------Error occurred update posting----" + err);
    this.handleError(err);
  }
 }

在调用此服务函数后,我想检查component.ts中的插入/更新是否成功完成。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-01-30 02:25:39

这可以在subscribe方法中完成,如下所示:

代码语言:javascript
运行
复制
return this.http.post(this.baseurl + "/update/" + id, data)
.subscribe(result => console.log(result),
 (error) => {
    // error logic here
  },
 () => {
    // request success logic here
  });

但是,如果您想检查组件中的错误/成功,您不应该订阅您的服务,并在您的组件中执行实际订阅,如下所示:

服务:

代码语言:javascript
运行
复制
return this.http.post(this.baseurl + "/update/" + id, data);

在你的component.ts中

代码语言:javascript
运行
复制
this.serviceInstance.UpdateData(data, id).subscribe(result => console.log(result),
(error) => { /* error logic */ }, () => { /* success logic */})
票数 1
EN

Stack Overflow用户

发布于 2020-01-30 02:44:06

代码语言:javascript
运行
复制
 this.http.post(this.baseurl + "/update/" + id, data).subscribe(result => {
      if (result.status == "SUCCESS") {
        console.log(result)
      } else {
        this.dataService.toster('Please try again later: somthing went wrong', "error")
      }
    }, err => {
      this.dataService.toster('Please try again later: somthing went wrong', "error")
    })
  }

Dataservice.ts

代码语言:javascript
运行
复制
import { BehaviorSubject } from 'rxjs';
export class dataService {
 public tosterData = new BehaviorSubject<any>([]);
toster(data, status) {   
        const obj = {
            message: data,
            status: status
        }
        this.tosterData.next(obj);
    }
票数 1
EN

Stack Overflow用户

发布于 2020-01-30 02:31:01

代码语言:javascript
运行
复制
class MyService {
  public UpdateData(data, id) {
    return this.http.post(this.baseurl + "/update/" + id, data);
  }
}

然后

订阅错误回调

代码语言:javascript
运行
复制
class MyComponent {
  public InsertRecord(data, id) {
    this.myService.UpdateData(data, id).subscribe({
       next: result => {
         // show success
       },
       error: err => {
         // show fail
       }
     });
  }
}

-或者--

异步等待使用try catch

代码语言:javascript
运行
复制
class MyComponent {
  public InsertRecord(data, id) {
    try {
      const result = await this.myService.UpdateData(data, id).toPromise();
      // show success
    } catch (err) {
      // show fail
    }
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59973323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档