Как сделать массовое удаление в angular 4 с массивом идентификаторов

Я пытаюсь сделать массовое удаление, для этого у меня есть Array<number> идентификаторов, которые я хочу удалить. Я не могу передать этот массив в качестве параметра методу this._httpService.delete(uri,options). Тип _httpServiceHttp.

Итак, я зацикливаю массив и внутри цикла делаю одиночные вызовы, но каждый вызов является асинхронным, и у меня есть определенная логика для запуска, когда цикл заканчивается.


person Daniel Acevedo    schedule 16.06.2018    source источник
comment
Почему вы не можете указать идентификаторы в качестве параметров URL?   -  person user184994    schedule 17.06.2018
comment
потому что я не знаю, сколько объектов пользователь собирается удалить. Я показываю список вещей, и пользователь выбирает те, которые он хочет удалить.   -  person Daniel Acevedo    schedule 17.06.2018


Ответы (1)


На самом деле вы можете отправить массив идентификаторов в теле запроса DELETE в соответствии с этот ответ, например:

http.delete('/api/something', new RequestOptions({
    headers: headers,
    body: anyObject    // this would contain your ids
}))

Поэтому вместо того, чтобы выдавать сотни запросов, пусть ваше приложение сделает только один со всеми идентификаторами в теле.

person Marcos Dimitrio    schedule 17.06.2018
comment
Удивительно, и мой следующий вопрос будет: как мне получить доступ к этому массиву? Я могу получить доступ к заголовкам, выполняемым в ми-бэкэнде: например, Request.Headers.Autrhorization.Scheme, чтобы получить токен. - person Daniel Acevedo; 17.06.2018
comment
Большое спасибо, я могу получить доступ к массиву со следующим параметром: идентификаторы [FromBody] - person Daniel Acevedo; 17.06.2018
comment
У меня следующая проблема: stackoverflow.com/questions/50893637/ вы можете мне помочь? - person Daniel Acevedo; 17.06.2018
comment
RequestOptions устарел со всем пакетом @angular/http, начиная с Angular 5. Параметры теперь являются только объектом без определенного типа. - person jowey; 11.02.2020