[英]How can I wait for return of socketIO event?
我必须返回debugReturn事件的OK验证函数,但我不知道如何执行,因为它是异步的。 我需要一种将true或false返回到validate函数的方法。 对不起,我的英语:S
$('.num-pad').keyboard({
layout: 'num',
validate: function(keyboard, value, isClosing) {
var data = $(keyboard['el']).attr('id').split('_');
var var_index = data[data.length - 1];
var var_name = data[0];
for (var i = 1; i < data.length - 1; i++) {
var_name += '_';
var_name += data[i];
}
socket.emit('debugVar', {
var_value: value,
var_name: var_name ,
var_index: var_index
});
socket.on('debugReturn', function(msg) {
if (msg == 1) {
$('.ui-keyboard input').css('box-shadow', 'inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)');
return true;
} else {
$('.ui-keyboard input').css('box-shadow', 'inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(255,0,0,.6)');
return false;
}
});
}
});
我从验证功能之外解决了处理键盘的问题
$('.num-pad').keyboard({
layout: 'num',
validate: function(keyboard, value, isClosing) {
var data = $(keyboard['el']).attr('id').split('_');
var var_index = data[data.length - 1];
var var_name = data[0];
for (var i = 1; i < data.length - 1; i++) {
var_name += '_';
var_name += data[i];
}
socket.emit('debugVar', {
var_value: value,
var_name: var_name ,
var_index: var_index
});
kb = keyboard;
}
});
然后 ...
socket.on('debugReturn', function(msg) {
if (msg == 1) {
$('.ui-keyboard input').css('box-shadow', 'inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)');
kb.options.validate = true;
kb.accept();
kb.options.validate: function(keyboard, value, isClosing) {
var data = $(keyboard['el']).attr('id').split('_');
var var_index = data[data.length - 1];
var var_name = data[0];
for (var i = 1; i < data.length - 1; i++) {
var_name += '_';
var_name += data[i];
}
socket.emit('debugVar', {
var_value: value,
var_name: var_name ,
var_index: var_index
});
kb = keyboard;;
} else {
$('.ui-keyboard input').css('box-shadow', 'inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(255,0,0,.6)');
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.