PouchDB 得到 Promise 为 'this' 返回 null

PouchDB get Promise returning null for 'this'

我正在使用带有 Ionic v2 的 PouchDB。当我试图从 .then.get.

访问它时,我遇到了一个问题
public start(): Promise<any> {
    return this.db.get('step.current').then(function (doc) {
        Logger.log(this);
        Logger.log(doc);
        if (doc) return this.get(doc.name);
        return this.get('start.json');
    }).catch(err => {
        Logger.error(err);
        return this.get('start.json');
    });
}

Logger 打印 nulldoc 对象,但是当尝试执行 this.get(doc.name) 它失败并输入 .catch 其中 this.get('start.json'); 正在工作。

我是不是漏掉了什么?我看不出有什么问题。

替换

then(function (doc) {

来自

then(doc => {

这就是箭头函数的全部意义所在:它们会自动绑定到 this