Javascript 如何处理代码中的竞争条件?
在下面的类中,函数result()将显示变量的值Javascript 如何处理代码中的竞争条件?,javascript,typescript,race-condition,Javascript,Typescript,Race Condition,在下面的类中,函数result()将显示变量的值 whatToDo相应地调用函数加法和乘法 条件:在下面的代码中,如果whatTodo是addition,但是函数addition只是不被调用 问题:我如何处理这种情况 class SomeClass{ let whatToDo: string; public result(){ if ( this.whatToDo == 'additon'){ return this.whatToDo;
whatToDo
相应地调用函数加法
和乘法
条件:在下面的代码中,如果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
}
}
用例-在调用addition()之前,当
whatTodo
被指定为addition
时,它应该告诉whatTodo
是未定义的
,这样就可以很容易区分addition()尚未被调用。这就是我想要实现的。它看起来只是一个输入错误,请尝试:
public result(){
if ( this.whatToDo == 'addition'){
return this.whatToDo;
}
else if (this.whatToDo == 'multiplication'){
return this.whatToDo;
}
您在代码中拼错了单词“additon”和“multiplication”
函数result()将显示
实际上没有任何内容请更好地解释您的问题,对我来说,这个问题毫无意义。请您分享一个调用代码的示例,以及调用代码的预期输出?我在代码中没有看到竞争条件。(竞态条件是当您有两个或多个线程修改同一资源时)当调用addition()
之前whatTodo
被分配为“addition”
时。那么,这将在何时发生?请忽略键入是否确定,因为现在的代码不会返回任何内容。如果不返回任何内容,请尝试在else之后添加else