我该如何处理代码中的竞争条件?
问题描述:
在下面的类中,函数result()将显示变量的值 whatToDo
因此函数addition
和multiplication
被调用。我该如何处理代码中的竞争条件?
条件:在这里,在下面的代码,如果whatTodo
是addition
但功能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
调用除()之前,因此它应该告诉whatToDo
是undefined
,以便它可以很容易地区别是除了()尚未called.This我想要什么ot实现。
答
它看起来像只是一个错字,请尝试:
public result(){
if (this.whatToDo == 'addition'){
return this.whatToDo;
}
else if (this.whatToDo == 'multiplication'){
return this.whatToDo;
}
你拼错在你的代码中的 “additon” 和 “multiplcation”。
+0
请忽略拼写错误 – Aditya
+0
您确定,因为代码现在不会返回任何内容。尝试在else之后添加else,如果不返回任何内容 –
'功能结果()将显示“什么都没有 –
请更好地解释你的问题,对我来说这个问题根本没有意义。 – timakro
请分享调用你的代码的例子,以及调用它的期望输出吗? – Fenton