2017-10-16 146 views
1

在下面的类中,函数result()将显示变量的值 whatToDo因此函数additionmultiplication被调用。我该如何处理代码中的竞争条件?

条件:在这里,在下面的代码,如果whatTodoaddition但功能addition只是不叫什么。

问题:我该如何处理这个问题条件

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 
} 
} 

使用情况 - 当whatTodo分配为addition调用除()之前,因此它应该告诉whatToDoundefined,以便它可以很容易地区别是除了()尚未called.This我想要什么ot实现。

+1

'功能结果()将显示“什么都没有 –

+0

请更好地解释你的问题,对我来说这个问题根本没有意义。 – timakro

+0

请分享调用你的代码的例子,以及调用它的期望输出吗? – Fenton

回答

1

它看起来像只是一个错字,请尝试:

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

你拼错在你的代码中的 “additon” 和 “multiplcation”。

+0

请忽略拼写错误 – Aditya

+0

您确定,因为代码现在不会返回任何内容。尝试在else之后添加else,如果不返回任何内容 –