【问题标题】:How to use subscribed data in another request in Angular如何在 Angular 的另一个请求中使用订阅的数据
【发布时间】:2019-11-14 06:46:24
【问题描述】:

我有提交数据的发布请求。提交数据后,我会收到包含提交项目 ID 的响应。

我已将那个 ID 分配给一个变量。

现在,我需要在另一个发布请求中使用该变量。

当我尝试时,我可以看到 value 是空白的

 this.sharepointService.createItem().subscribe( (response : Response) => {
      this.lastItemCreatedId = response['d'].ID;  // latitemcreated is a variable
      console.log("Newly created Item ID :" + this.lastItemCreatedId)
    })

现在我需要在另一个请求中使用 lastItemCreatedId

      let url = "_spPageContextInfo.webAbsoluteUrl"+"_api/web/lists/getByTitle('List')/items('"+this.lastItemCreatedId+"')/AttachmentFiles/add(FileName='abc.txt')"

 this.sharepointService.addAttachementstoItem(url).subscribe()

信息:以上两个是post请求

如何在另一个发布请求中使用 lastItemCreatedID 变量值?

【问题讨论】:

  • 第二个post请求是如何触发的?是在调用createItem() 之后立即调用吗?
  • 在 Sharpeoint 服务中,我有两个不同的 POST 请求。一个用于 createItem,另一个用于 addAttachmentstoItem。这两个请求将在提交按钮单击时触发。首先触发 createItem 的位置,然后触发 addAttachmentstoItem
  • 在这种情况下,它实际上与我刚才回答的另一个问题非常相似。你可以在这里阅读更多关于它的信息! stackoverflow.com/questions/55638147/…

标签: angular angular6


【解决方案1】:

由于这两种方法都是一个接一个地调用,所以你应该使用 RxJS 的 mergeMap 操作符。

我们可以使用mergeMapcreateItem() 中的可观察对象映射到内部可观察对象,随后将其分配为url 变量的一部分。然后,我们调用 addAttachementstoItem() 方法,在下一行的 subscribe() 中返回 observables。

import { mergeMap } from 'rxjs/operators';

this.sharepointService.createItem()
  .pipe(
    mergeMap((response : Response) => {
      this.lastItemCreatedId = response['d'].ID;
      let url = "_spPageContextInfo.webAbsoluteUrl"+"_api/web/lists/getByTitle('List')/items('"+this.lastItemCreatedId+"')/AttachmentFiles/add(FileName='abc.txt')"
      return this.sharepointService.addAttachementstoItem(url);
    }).subscribe(res => {
      // do the rest here
    })

【讨论】:

  • 会试试的!
  • 我试过了,但是返回语句是循环的。因此,我收到错误消息:'(response: Object) => void' 类型的参数不可分配给'(value: Object, index: number) => ObservableInput' 类型的参数。类型 'void' 不可分配给类型 'ObservableInput'
  • @Shivaay 我可以知道循环在哪里吗?你提到你的代码中有一个循环?
猜你喜欢
  • 2020-12-04
  • 2021-12-05
  • 2023-03-28
  • 2019-01-22
  • 1970-01-01
  • 2020-07-30
  • 1970-01-01
  • 1970-01-01
  • 2018-01-13
相关资源
最近更新 更多