Ионный собственный HTTP-возврат Undefined - PullRequest
0 голосов

Я пытаюсь перейти с углового http на ионный http

.

Плагин: cordova-plugin-advanced-http

Это код получения звонка:

let response =  from(this.http.post(url, {body}, {httpOptions})
            .then(res => { return JSON.parse(res.data) }, res => console.log(res.data)));

return response;

и это другой способ, которым я пытался это сделать:

let promise = this.http.get(url, {}, {httpOptions})
            .then(data => {
                console.log(data.status);
                console.log(data.data); // data received by server
                console.log(data.headers);
                return JSON.parse(data.data);
            })
            .catch(error => {
                console.log(error.status);
                console.log(error.error); // error message as string
                console.log(error.headers);
            });

return from(promise);

Возвращаемые значения и значения журнала консоли всегда undefined .

До этого я делал это с угловым http, и он работал нормально. как это:

return this.http
          .post(url, body, httpOptions);

В чем проблема? любое решение, пожалуйста!

1 Ответ

0 голосов
/ 14 июня 2019
import { HttpClient } from '@angular/common/http';
import { HTTP } from '@ionic-native/http';
...
private headers: any = {};

constructor
  (
    public http: HttpClient,
    private Http: HTTP,
  ){
    this.headers = {
      'Content-Type': 'application/x-www-form-urlencoded',
      'Accept': 'application/json'
    };
    this.Http.setRequestTimeout(10.0);
  }

...

async httpPost( url? , data? ):Promise<any>{

    let self = this;

    return new Promise( (resolve) => {
      self.Http.post( url , data, self.headers )
        .then(res => {
          console.log(res);
          var response = JSON.parse(res.data);
          resolve(response);
        })
        .catch(error => {
          resolve(error);
        });
    });

  }
...