У меня есть флаг sendMessageFlag
если его true я хочу установить функцию obj в fileData
но он всегда говорит undefined.
ctrl.js
var sendMessageFlag;
function sendMessageToFile (data){
return data;
}
socket.on('ditConsumer',function (data) {
var obj = {
file:$scope.filename,
data:data
}
if(sendMessageFlag) {
console.log('send messageto FIe in consumer');
sendMessageToFile(obj);
}
});
if($scope.filename) {
sendMessageFlag = true;
var fileData = sendMessageToFile(data);
console.log('CONSUMER MESSAGE', fileData);
socket.emit('startrecording', fileData);
}
Вы не инициализировали значение sendMessageFlag при объявлении переменной вверху. Если сначала запускается socket.on('ditConsumer'), значение не определено. Возможно, вы захотите инициализировать его с помощью false, а затем установите его значение true в блоке if внизу.
fileData
socket
когда socket.on()
?
Если я правильно понял, ниже - это решение (так что вы не получите неопределенное значение в 'console.log(' CONSUMER MESSAGE ', fileData);':
if(sendMessageFlag) {
console.log('send messageto FIe in consumer');
return sendMessageToFile(obj);
}
Вы также должны вернуться из условия if.
data
в этой строкеvar fileData = sendMessageToFile(data);
приходящий из?