0
votes

Comment écrire une condition une seule fois?

Je veux écrire une condition ! AUTH_DISABLED une seule fois comment l'implémenter?

if (
    (graphqlErrors && graphqlErrors.message.contains("401") && !AUTH_DISABLED) ||
    (networkError && networkError.statusCode === 401 && !AUTH_DISABLED)
){
    session.login()
}


0 commentaires

3 Réponses :


1
votes

Déplacer votre condition dans un autre if ou simplement concaténer avec l'opérateur && :

if (!AUTH_DISABLED && (
      (graphqlErrors && graphqlErrors.message.contains("401")) ||
      (networkError && networkError.statusCode === 401)
   )
){
    session.login()
}


0 commentaires

2
votes

Essayez ceci:

if (!AUTH_DISABLED && (graphqlErrors && graphqlErrors.message.contains("401")) ||
    (networkError && networkError.statusCode === 401)){
    session.login()
}


0 commentaires

0
votes

Peut-être lancer des erreurs ou faire quelque chose d'autre, plus tard, vous pourriez rencontrer des problèmes si vous ne les gérez pas. xD

if (!AUTH_DISABLED && graphqlErrors && networkError ) {

  const graphqlErrors_401 = graphqlErrors.message.contains("401")
  const networkError_401 = networkError.statusCode

  if (graphqlErrors_401 || networkError_401 === 401) {
    session.login()
  } else { // throw error or do something else 
  }
} else { // do something else when auth is disabled
}


2 commentaires

graphqlErrors && graphqlErrors_401 - vous vérifiez si graphqlErrors est valide après l'avoir utilisé graphqlErrors.message.contains ("401") < / code>. Cela provoquera une erreur si graphqlErrors est null ou undefined ou false (ou quoi que ce soit d'autre).


C'est vrai, je vais le changer