角度2-在 setTimeout 中使用‘ this’

在我的类中有一个类似的函数

  showMessageSuccess(){


var that = this;
this.messageSuccess = true;


setTimeout(function(){
that.messageSuccess = false;
},3000);


}

我怎样才能重写它,这样我就不必将对“ this”的引用存储在“ that”变量中?如果我在 setTimeout 中使用“ this”,则 messageSuccess bool 似乎不会更改/得到更新。

372161 次浏览

您需要使用 箭头函数 ()=> ES6特性来保留 setTimeout中的 this上下文。

// var that = this;                        // no need of this line
this.messageSuccess = true;


setTimeout(()=>{                           // <<<---using ()=> syntax
this.messageSuccess = false;
}, 3000);