Ионическое использование Oauth для извлечения и обработки данных, требуется помощь - PullRequest
0 голосов
/ 18 декабря 2018

код в провайдере собак ->

public getAuth(): string {
let final_token: string;
var form = new FormData();
form.append("username", "email@gmail.com");-
form.append("password", "randomPass");
form.append("client_id", "1");
form.append("client_secret", "my_secret");
form.append("grant_type", "password");

var settings = {
  async: true,
  crossDomain: true,
  url: "oauth/token",
  method: "POST",
  headers: {
    "cache-control": "no-cache",
    "Postman-Token": "postman_token"
  },
  processData: false,
  contentType: false,
  mimeType: "multipart/form-data",
  data: form
};

$.ajax(settings).done(function(response) {
  let obj = JSON.parse(response);
  final_token = obj.token_type + " " + obj.access_token;
  return final_token;
});
return final_token;

Это метод, который я использую для извлечения необходимых мне данных из API, использующего Oauth2.В настоящее время работает, я получаю токен.Но когда я иду обработать его в своем классе через ионик через провайдера 'dog':

provider: DogProvider;

  constructor(
    public navCtrl: NavController,
    public navParams: NavParams,
    dogProvider: DogProvider
  ) {
    this.provider = dogProvider;
  }

ionViewDidLoad() {
    console.log("this.provider.getAuth()");
  }

Он возвращает неопределенное значение, как мне это исправить?Должен ли я подписаться или отобразить результат, честно говоря, я понятия не имею, потому что, когда я вхожу в метод, который я вызываю, он извлекает правильную строку аутентификации, но только после того, как она вернула неопределенный (я думаю, что это как-то связано с jqueryпотому что он ожидает окончания загрузки документа, но я могу ошибаться и не знаю, как это исправить)?

1 Ответ

0 голосов
/ 18 декабря 2018

Я был прав, js не ждет завершения метода, и он выполняется позже.Я использовал await и async, чтобы исправить проблему.

...