2017-10-16 5 views
1

Dans la classe ci-dessous, la fonction result() affichera la valeur de la variable whatToDo en conséquence les fonctions addition et multiplication sont appelées.Comment puis-je gérer la condition de concurrence dans le code?

Condition: Ici, dans le code ci-dessous si whatTodo est addition mais la fonction est addition ne pas appelée.

Question: Comment puis-je traiter cette condition ?

class SomeClass{ 

let whatToDo: string; 

public result(){ 
     if (this.whatToDo == 'additon'){ 
      return this.whatToDo; 
      } 
     else if (this.whatToDo == 'multiplcation'){ 
       return this.whatToDo; 
} 

} 
public addition(){ 
    this.whatToDo = 'addition'; 
    //do something 
} 

public multiplication(){ 
    this.whatToDo = 'multiplication'; 
    //do something 
} 
} 

Cas d'utilisation - Lorsque whatTodo est affecté comme addition avant d'appeler addition(), donc il faut dire que whatToDo est undefined afin qu'il puisse être facilement différenciée que l'addition() n'est pas called.This encore ce que je veux ot atteindre.

+1

'le résultat de la fonction() ne montrera rien –

+0

S'il vous plaît expliquer votre question mieux, pour moi cette question n'a aucun sens du tout. – timakro

+0

S'il vous plaît pouvez-vous partager un exemple d'appel de votre code, et la sortie attendue de l'appeler? – Fenton

Répondre

1

Il ressemble juste une faute de frappe, essayez:

public result(){ 
     if (this.whatToDo == 'addition'){ 
      return this.whatToDo; 
      } 
     else if (this.whatToDo == 'multiplication'){ 
       return this.whatToDo; 
} 

Vous avez mal orthographié les mots "additon" et "multiplcation" dans votre code.

+0

s'il vous plaît ignorer les fautes de frappe – Aditya

+0

Êtes-vous sûr, parce que la façon dont le code est maintenant, il ne retournera rien. Essayez d'ajouter un autre après l'autre si avec rien retourner –