我想_userRegister
从asycn函数的结果中创建一个全局变量。怎么做?
/* Socket.io-client Function */
function reportSignUp(socket, date) {
// sent to socket server
socket.emit('report signup', date);
// listenning response from server
socket.on('users signup', function (data) {
// data is the result from server
console.log('user register', data);
// make data global
_userRegister = data;
});
}
;
/* End Socket.io-client Function */
$(function () {
var _userRegister;
var socket = io();
var date = getDateTime(); // get current time from system
reportSignUp(socket, date);
console.log("_userRegister",_userRegister); // <- underfine
});
</script>
让您的函数返回一个promise。如果您需要在其他地方访问此异步值,则可以在全局范围内保存promise。
function reportSignUp(socket, date) {
var dfd = $.Deferred();
// sent to socket server
socket.emit('report signup', date);
// listenning response from server
socket.on('users signup', function (data) {
// data is the result from server
console.log('user register', data);
dfd.resolve(data);
});
return _userRegistering = dfd.promise();
}
/* End Socket.io-client Function */
$(function () {
var _userRegister;
var socket = io();
var date = getDateTime(); // get current time from system
reportSignUp(socket, date).then(function(userData) {
console.log("_userRegister", userData);
});
// or
_userRegistering.then(function(userData) {
console.log("_userRegister from global variable", userData);
})
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句