Угловой HTTP-запрос, возвращающий функцию

Я пытаюсь переписать код AngularJS / JS на Angular / TS для настраиваемого метода, который выполняет HTTP-запрос и возвращает функцию. Однако я застрял в том, как это сделать. Мой код JS выглядит так:

function generateRequest(method, url, headers, body) {
    return {
        method: method,
        url: url,
        headers: headers,
        body: body
    };
}

myService.customRequest = function (method, URL, headers, body, fncSuccess, fncFail) {            
        var point = www.someURL.com;            

        $http(generateRequest(method, point, headers, body)).then(function (response) {
            if (typeof fnc == 'function') {
                fnc(response.body);
            }
        }, function (response) {
            if (response.status != 106) {
                if (typeof fncFail == 'function') {
                    fncFail(response);
                }
            }
        });
};

Может ли кто-нибудь сказать мне, как это переписать в Angular / TS с помощью класса HttpClient?

Ни один из этих кодов не возвращает функцию.

a better oliver 18.05.2018 11:38

Итак, вы хотите написать тот же код, что и для Angular 2.x?

Pardeep Jain 18.05.2018 11:41

да @PardeepJain

YourReflection 18.05.2018 11:45

Вы проверили мой ответ @YourReflection

Pardeep Jain 21.05.2018 07:10

Нет, я больше не работаю над этим проектом.

YourReflection 06.06.2018 18:27
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
5
175
1

Ответы 1

Вы можете посмотреть здесь почти так же, как ваш код -

import { Http, Response, RequestOptions, Headers, Request, RequestMethod } from '@angular/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Rx';

@Injectable()
export class GlobalService {

  constructor(
    public http: Http,
  ) { }

  generateRequest(url, method, body?, headers) {
    const requestoptions = new RequestOptions({
      method: method === 'post' ? RequestMethod.Post : RequestMethod.Get,
      url: url,
      headers: headers,
      body: body || null
    });

    return requestoptions;
  }

  public customRequest(url: string, method, headers, body): any {
    let point = www.someURL.com;            
    return this.http.request(new Request(this.setHeader(point, 'get', body, headers)))
    .map((res: Response) => {
      return [{status: res.status, json: res.json()}];
    })
    .catch((error: any) => {
      return this.handleError(error);
    });
  }
}

Другие вопросы по теме