angular-fullstack/generator-angular-fullstack

Incorrect usage of Promise and safeCb in code using auth.service.ts (canary)

Open

#2682 aperta il 30 dic 2017

Vedi su GitHub
 (0 commenti) (0 reazioni) (0 assegnatari)JavaScript (1268 fork)batch import
good first issue

Metriche repository

Star
 (6134 star)
Metriche merge PR
 (Nessuna PR mergiata in 30 g)

Descrizione

  • I understand that GitHub issues are not for tech support, but for questions specific to this generator, bug reports, and feature requests.
Item Version
generator-angular-fullstack 5.0.0-beta.3
Node v8.9.3
npm 5.6.0
Operating System Ubuntu 16.04
Item Answer
Transpiler TypeScript
Markup HTML
CSS SCSS
Router ui-router
Client Tests Mocha
DB MongoDB
Auth Y

Example

auth.service.ts

    changePassword(oldPassword, newPassword, callback) {
        return this.UserService.changePassword({id: this.currentUser._id}, oldPassword, newPassword)
            .toPromise()
            .then(() => {console.log("success"); safeCb(callback)(null)})
            .catch(err => {console.log("error"); safeCb(callback)(err)});
    }

Then in settings.component.ts you do:

  changePassword(): void {
    this.submitted = true;
    return this.AuthService.changePassword(this.oldPassword, this.password)
      .then(() => {
        // success message
      })
      .catch(err => {
        // incorrect password message
      });
  }

Here // success message is always displayed because safeCb returns undefined.

Guida contributor