Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何处理代码中的竞争条件?_Javascript_Typescript_Race Condition - Fatal编程技术网

Javascript 如何处理代码中的竞争条件?

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;

在下面的类中,函数result()将显示变量的值
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