我收到此错误是因为'这个'我想是超出了范围,但我无法找到解决问题的方法。我尝试使用胖箭头,然后该功能运行。但是有一个问题是我没有必须使用的回调值?这是我的代码:
this.checkIfDatabaseIsLocked(function(res) {
//If true database is locked
console.log("result checkIfDatabaseIsLocked: " + res);
if (res) {
return;
}
//LockDatabase
this.lockDatabase().then(
result => {
有什么想法吗?提前致谢!!!
答案 0 :(得分:1)
在此处使用箭头功能可确保this
保持您期望的值:
this.checkIfDatabaseIsLocked(res => {
//If true database is locked
console.log("result checkIfDatabaseIsLocked: " + res);
if (res) {
return;
}
//LockDatabase
this.lockDatabase().then(
result => {
... and so on
答案 1 :(得分:0)
您可以使用arrow functions或使用正确的上下文绑定您的函数,以在您的函数中获得正确的this
:
this.checkIfDatabaseIsLocked((res) => {
// `this` will be bound correctly here
})
<击> 或使用Function.bind:
this.checkIfDatabaseIsLocked((function (res) {
// `this` will be bound correctly here
}).bind(this))
击> <击> 撞击>
不要将Function.bind
与TypeScript一起使用。您将失去类型检查。见https://github.com/Microsoft/TypeScript/issues/212