Ionic 2 родной Http плагин не возвращает ответ - PullRequest
0 голосов
/ 27 июня 2018

Я использую Ionic 2 собственный плагин HTTP и запускаю http.post от провайдера. Данные получены от API в поставщике, но, похоже, не отправляются обратно на компонент страницы. Я получаю ошибку:

TypeError: undefined не является объектом (оценка 'This.authProvider.login (FormData) .then')

СТРАНИЦА: login.ts

 doLogin() {

      this.spinner = 'true';

      this.authProvider.login(formData).then((result:any) => {

          if(result.status == 'isTrue') {

            this.storage.set('userId', result.userId);
            this.storage.set('userToken', result.token);
            this.storage.set('profilePic', result.profilepic);
            this.storage.set('userUsername', result.username);
            this.navCtrl.setRoot(TabsPage);

          }
          else {
            this.presentToast('Incorrect email or password, try again');
            console.log('not a user');
          }
          this.spinner = 'false';
      }, (err) => { 

      });

  }

ПРОВАЙДЕР: authProvider

  login(data) {

    if (this.platform.is('ios')) 
    {
      this.http2.post(this.apiUrl+'/api/login', data, {})
        .then((dataresult) => {

          return dataresult; // this outputs ok in console.log, but doesnt 
                                return back to page

          //console.log(dataresult);

        })
        .catch(error => {

        });

    }

  }

1 Ответ

0 голосов
/ 28 июня 2018

Вы должны вернуть обещание от authProvider,

return new Promise(resolve => {
  this.http2.post(this.apiUrl+'/api/login', data, {})
  .subscribe(dataresult => {
    resolve(dataresult);
  });
});
...