Есть класс, в котором есть 3 функции. Две из них должны возвратить значение. Не получается вызвать функции getUsername(arg) и getTotal(arg) внутри функции getStats(callback). Получаю ошибку "TypeError: this.getUsername is not a function"
Но функция успешно выполняется в теле класса.
В чем причина не выполнения функций? Имена функций менял, не помогло. Выполняю на NodeJS.
const colors = require('colors');
function Stats(collection, group_id) {
this.collection = collection;
this.group_id = group_id;
this.empty = {
_id: null,
usernames: [],
titles: [],
members: {
total: [],
joined: [],
joined_by_link: [],
added: [],
leaved: [],
kicked: []
},
admins: [],
bots: [],
group_pics: [],
pins: [],
full_chat_last_date: null
};
this.getUsername = function (group) {
return null;
};
this.getTotal = function (group) {
return null;
};
this.getStats = function (callback) {
//делает запрос к таблице
// если получает строку, заменяет информацию this.Stats
// если нет, оставляет прежней
this.collection.find({}).toArray(function(err, groups) {
for (let group of groups) {
if (group["_id"] == this.group_id) {
//Вычислить значения для статов группы
this.stats_light = {
username: null,//this.getUsername(group), - тут не работает
title: group.titles[group.titles.length-1].value,
total: null,//this.getTotal(group), - тут не работает
admins: group.admins[group.admins.length-1].value.length,
bots: group.bots[group.bots.length-1].value.length
}
console.log(colors.yellow("callback"));
callback(group, stats_light);
return;
}
}
console.log(colors.yellow("callback NOTHING"));
callback(this.empty);
return;
if (err) console.log(colors.red(err));
});
};
//------------------------------
//Тут работает
let e = this.getUsername(2);
//------------------------------
}
exports.Stats = Stats;
Внутри function(err, groups) {
другой контекст.
var that = this;
this.collection.find({}).toArray(function(err, groups) {
for (let group of groups) {
if (group["_id"] == this.group_id) {
//Вычислить значения для статов группы
this.stats_light = {
that.getUsername(group), // тут работает
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Я хотела сделать так, чтобы вся информация о спрайте хранилась в объекте и функцию отрисовки можно было бы использовать много раз не только...
Я хочу сделать,чтобы функцию draw можно было бы применять много раз с разными картинками, но у меня почему-то не выходитМожет это особенности...
консоль выдает 1730 ширину окна браузера в фулл скринеscreen