首页 > 解决方案 > Angular:如何使用 http.delete 或 http.request 删除多个数据

问题描述

使用以下代码模拟服务器时,我可以删除一个项目:

 var result = <Promise<ArrayBuffer>> this.http
      .request('delete', `api/accounts/1`)
      .toPromise();

我想删除多个项目,但想批量而不是分开

var result = <Promise<ArrayBuffer>> this.http
            .request('delete', `api/accounts`, { 
                headers: new HttpHeaders({
                    'Content-Type': 'application/json',
                  }),
                body
             })
            .toPromise();

这给了我一个错误“未找到”

core.js:4197 ERROR Error: Uncaught (in promise): Object: {"body":{"error":"Missing \"accounts\" id"},"url":"api/accounts","headers":{"normalizedNames":{},"lazyUpdate":null},"status":404,"statusText":"Not Found"}
    at resolvePromise (zone-evergreen.js:798)
    at resolvePromise (zone-evergreen.js:750)
    at zone-evergreen.js:860
    at ZoneDelegate.invokeTask (zone-evergreen.js:399)
    at Object.onInvokeTask (core.js:27424)
    at ZoneDelegate.invokeTask (zone-evergreen.js:398)
    at Zone.runTask (zone-evergreen.js:167)
    at drainMicroTaskQueue (zone-evergreen.js:569)
    at invokeTask (zone-evergreen.js:484)
    at ZoneTask.invoke (zone-evergreen.js:469)  

标签: angularmockinghttp-delete

解决方案


您可以参考以下工作原理:

  1. ForkJoin
  2. MergeMap

详细可以参考以下博客:Angular Multiple HTTP Requests with RxJS


推荐阅读