2016-10-30 8 views
0

Я называю эту функцию внутри .then обещанияФункция не определена (даже если он есть)

this.retrieveMatches(); 

эта функция выглядит следующим образом

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

эта функция как раз над ним:

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

так почему консоль сказать:

Uncaught (in promise) ReferenceError: makeHTMLMatchesTable is not defined

, если он определенно определен?

+8

ERM, вы не называя его 'this'. – vlaz

+0

Вы должны включить закрытие, где все определено – Mayday

+0

@Mayday Что вы подразумеваете под «закрытием»? –

ответ

0

Изменить этот код

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

в

retrieveMatches: function(){ 
    var tableResult = this.makeHTMLMatchesTable(fetchMatches()); 
    var matches = document.getElementById('matches') 
    matches.parentNode.insertBefore(tableResult, matches); 
    }.bind(this), 
Смежные вопросы