2016-10-30 4 views
0

ich in einem .then Versprechen diese Funktion aufrufenFunktion nicht definiert ist (obwohl es ist)

this.retrieveMatches(); 

diese Funktion sieht wie folgt aus

retrieveMatches: function(){ 
    var tableResult = makeHTMLMatchesTable(fetchMatches()); 
    var matches = document.getElementById('matches') 
    matches.parentNode.insertBefore(tableResult, matches); 
    }, 

diese Funktion direkt darüber ist:

makeHTMLMatchesTable: function(array){ 
    //does stuff 
    } 

so warum die Konsole sagen:

Uncaught (in promise) ReferenceError: makeHTMLMatchesTable is not defined

wenn es eindeutig definiert wurde?

+8

Erm, Sie nennen es nicht mit 'this'. – vlaz

+0

Sie sollten die Verschlüsse einschließen, wo alles definiert ist – Mayday

+0

@Mayday Was meinen Sie mit "closures"? –

Antwort

0

Ändern Sie diesen Code

retrieveMatches: function(){ 
    var tableResult = makeHTMLMatchesTable(fetchMatches()); 
    var matches = document.getElementById('matches') 
    matches.parentNode.insertBefore(tableResult, matches); 
    }, 

zu

retrieveMatches: function(){ 
    var tableResult = this.makeHTMLMatchesTable(fetchMatches()); 
    var matches = document.getElementById('matches') 
    matches.parentNode.insertBefore(tableResult, matches); 
    }.bind(this), 
Verwandte Themen