Promise Ionic / Angular - подключение пользователя - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь использовать обещание для подключения пользователя в моем Ionic App.Я пробовал много вещей ... но это не работает.В чем проблема ?Не могли бы вы мне помочь?

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

Это мой код в настоящее время.В чем дело ?(В настоящее время ошибка такова: «Функция, объявленный тип которой не является ни« void », ни« any », должна возвращать значение.»)

Это моя функция загрузки (без проблем, это то, что я долженвыполнить сначала)

load(credentials) 
   {

    let headers       : any     = new HttpHeaders({ 'Content-Type': 'application/json' }),
    options     : any       = { "pseudo" : credentials.email, "mdp" : credentials.password },
    url       : any   = "http://localhost:8888/authVerif2.php" ;


    return new Promise((resolve) => {

      this.http
      .post(url, JSON.stringify(options), headers)
      .subscribe(data => {
        console.dir(data);
        this.infosUser = data;
        //console.log(this.infosUser[0].prenom);
      resolve(this.infosUser);

    },


    (error : any) =>
    {
      console.dir(error);
    });

   })
  }

Это моя функция входа в систему:

public login(credentials) : Observable<any>{
      this.load(credentials)
      .then( a =>
        {


          if (credentials.email === null || credentials.password === null) {
            return Observable.throw("Please insert credentials");
          } else {
            return Observable.create(observer => {
              // At this point make a request to your backend to make a real check!      


              let access = (credentials.password === "pass" && credentials.email === "email");
              this.currentUser = new User('Simon', 'saimon@devdactic.com');
              observer.next(access);
              observer.complete();


            });
          }
        }
        );
  }

эти две функции находятся в поставщике с именем "auth-service".Этот провайдер используется на моей странице "login.html"

public login() {
    this.showLoading()
    this.auth.login(this.registerCredentials).subscribe(allowed => {
      if (allowed) {        
        this.nav.setRoot(HomePage);
      } else {
        this.showError("Access Denied");
      }
    },
      error => {
        this.showError(error);
      });
  }

1 Ответ

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

Не преобразуйте в строку параметры , поскольку вам необходимо опубликовать данные для функции входа в систему в формате объекта. Если вы ввели параметры , это означает, что вы публикуете строку.Таким образом, вы не можете получить доступ к данным в функции входа в систему из credentials.email & credentials.password

...