Получение объекта Blob после публикации данных

Я отправляю некоторые данные в API отдыха и должен получить объект blob в качестве ответа. Мне нужно скачать этот блоб, или мне нужно будет отправить его по почте в моем угловом приложении. Но я пытаюсь понять, как в ответ захватить объект blob. Мой файл службы данных:

export class DataService<Type> {
private resolveSuffix: string = '?resolve=true';
private actionUrl: string;
private headers: Headers;

constructor(private http: Http, private httpClient:HttpClient) {    }
public issueId(asset: Type): Observable<Blob> {
    return this.httpC.post('http://localhost:3001/api/system/identities/issue', asset, {responseType: "blob"})
    .toPromise();
}

Я получаю сообщение об ошибке:

property httpC doesn't exist on type 'DataService<Type>'

РЕДАКТИРОВАТЬ: первая ошибка исправлена, теперь ошибка типа «Обещание» не может быть назначена типу «Наблюдаемый»


person user9040429    schedule 30.03.2018    source источник
comment
Вы вызываете toPromise, но объявили метод возвращающим Observable.. либо измените тип возвращаемого значения метода на Promise<Blob>, либо не вызывайте toPromise()   -  person David    schedule 30.03.2018
comment
Я отредактировал вопрос, чтобы показать исходную ошибку, пожалуйста, не решайте свой вопрос, редактируя его, так как это сбивает с толку, когда уже были даны другие ответы.   -  person Pac0    schedule 30.03.2018


Ответы (2)


теперь ошибка типа «Обещание» не может быть назначена типу «Наблюдаемый»

Ошибка кажется довольно ясной. Если вы посмотрите документацию по методам httpClient, то увидите, что они возвращают Observable.

Возвращаемое значение вашего сервиса Observable

Все, что вам нужно, это удалить toPromise() из оператора return.

person Pac0    schedule 30.03.2018

Посмотрите на свой конструктор. Вы называете это httpC в подписи, а не httpClient, что означает, что вместо этого ваш вызов должен использовать this.httpC.post.

person McAden    schedule 30.03.2018
comment
Да, я исправил это, но теперь получаю сообщение об ошибке: тип «Promise‹Blob›» не может быть назначен типу «Observable‹Blob›» - person user9040429; 30.03.2018
comment
как сказал @Pac0 в своем ответе, удалите toPromise() - person McAden; 30.03.2018