从函数调用AngularFirestore

时间:2018-03-31 22:49:47

标签: javascript angular typescript

我正在尝试从promise函数调用AngularFireStore但是使用.this无效。如何从函数中调用afs?

import { AngularFirestore } from 'angularfire2/firestore';

constructor( private afs: AngularFirestore) {
}

var TestMethod = function() {
    var promise = new Promise(function(resolve, reject){
        this.afs.collection('profiles')
        resolve();
    });
    return promise;
};

1 个答案:

答案 0 :(得分:1)

问题在于你的范围。

您正试图在另一个函数中调用this,因此您的this现在引用该函数。

您应该执行以下操作:

import { AngularFirestore } from 'angularfire2/firestore';

constructor( private afs: AngularFirestore) {
}

var TestMethod = function() {
    var self = this;

    var promise = new Promise(function(resolve, reject){
        self.afs.collection('profiles')
        resolve();
    });
    return promise;
};