2

我在 Angular2 项目中实现 Dexie 2.0。

我有一个简单的表,它应该只包含一个用于订单命名的记录。

如果表有记录,我要做的是检查 IndexedDb,如果没有,则初始化它......非常简单。

这是代码:

this.OrderCounter.toArray().then(function (arr) {
        if (arr.length == 1) {
          console.log('Do nothing');
        }
        else {
          console.log('Initialize Counter');          
          this.OrderCounter.add(1);          
        }
      });

在这一刻,表是空的,如果我运行脚本,我会在初始化记录的行命令上得到“这是未定义的”......

我必须改变什么?

感谢支持

4

2 回答 2

2

this问题在于javascript的本质。尝试function (arr) { ... }用箭头函数替换,(arr) => { ... }您的this指针将粘在您的类实例上。

于 2017-10-31T03:46:26.700 回答
1

如果您使用的是旧版本的 JavaScript,那么您可能无法访问箭头函数。解决此问题的较旧方法是在函数调用之前将“this”放入变量中。

var self = this;
this.OrderCounter.toArray().then(function (arr) {
if (arr.length == 1) {
  console.log('Do nothing');
}
else {
  console.log('Initialize Counter');          
  self.OrderCounter.add(1);          
}

});

于 2020-03-16T15:06:32.747 回答