Angular - wynik subskrypcji o wartości "0" typu "number" jest traktowany jak null/undefined?

Odpowiedz Nowy wątek
2020-03-26 08:39

Rejestracja: 2 lata temu

Ostatnio: 1 godzina temu

Lokalizacja: Jastrzębie-Zdrój

0

Witam.
Angularem dodaje do API kontrahenta. Gdy kontrahent doda się poprawnie, zwracam jego ID i przechodzę w edycję, aby poczynić dalsze działania. W momencie gdy taki kontrahent jest już w bazie. Zamiast konkretnego ID zwracam 0.

      this.customersService.PostCustomer(customer).subscribe((result: number) => {
        if (!result) {
          this.snackBar.open('Wystąpił błąd podczas dodawania podatnika do systemu.', '', {
            duration: 3 * 1000,
            verticalPosition: 'bottom',
            horizontalPosition: 'end',
            panelClass: ['error-snackbar']
          });
        } else {
          if (result === 0) {
            this.snackBar.open('Podatnik o podanym numerze NIP już istnieje w systemie.', '', {
              duration: 3 * 1000,
              verticalPosition: 'bottom',
              horizontalPosition: 'end',
              panelClass: ['error-snackbar']
            });
          } else if (result !== 0) {
            this.router.navigate(['/customers/edit', result]);
            this.snackBar.open('Pomyślnie dodałem podatnika do systemu', '', {
              duration: 3 * 1000,
              verticalPosition: 'bottom',
              horizontalPosition: 'end',
              panelClass: ['success-snackbar']
            });
          }
        }
      });

Pierwszy if (!result) zwraca true. Dlaczego? Czy javascript traktuje to 0 jako false?

Pozostało 580 znaków

2020-03-26 08:53
Moderator

Rejestracja: 12 lat temu

Ostatnio: 37 minut temu

Lokalizacja: Wrocław

1

Tak, zero jest traktowane jak fałsz.


edytowany 1x, ostatnio: Patryk27, 2020-03-26 08:53

Pozostało 580 znaków

2020-03-26 08:54

Rejestracja: 1 rok temu

Ostatnio: 3 minuty temu

2020-03-26 09:01

Rejestracja: 2 lata temu

Ostatnio: 1 godzina temu

Lokalizacja: Jastrzębie-Zdrój

0

Ok, czyli muszę to ogarnąć kompletnie inaczej. Człowiek się uczy całe życie...

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0