Как использовать подписанные данные в другом запросе в Angular - PullRequest
1 голос
/ 03 июля 2019

У меня есть почтовый запрос, который предоставит данные.Когда данные отправлены, я получаю ответ, в котором содержится идентификатор отправленного элемента.

Этот идентификатор, который я присвоил переменной.

Теперь мне нужно использовать эту переменную веще один пост запрос.

Когда я пытаюсь, я вижу, что значение пусто

 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()

Информация: выше двух естьпубликовать запросы

Как использовать значение переменной lastItemCreatedID в другом пост-запросе?

1 Ответ

1 голос
/ 03 июля 2019

Поскольку оба метода вызываются один за другим, вы должны использовать оператор RxJS mergeMap .

Мы можем использовать mergeMap для отображения наблюдаемых из createItem() во внутреннийнаблюдаемый, который впоследствии будет назначен как часть переменной url.Затем мы вызываем метод addAttachementstoItem (), и наблюдаемые значения возвращаются в subscribe () в следующей строке.

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
    })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...