Самое простое решение - создать функцию JavaScript и вызвать его для обратного вызова Ajax success
.
function callServerAsync(){
$.ajax({
url: '...',
success: function(response) {
successCallback(response);
}
});
}
function successCallback(responseObj){
// Do something like read the response and show data
alert(JSON.stringify(responseObj)); // Only applicable to JSON response
}
function foo(callback) {
$.ajax({
url: '...',
success: function(response) {
return callback(null, response);
}
});
}
var result = foo(function(err, result){
if (!err)
console.log(result);
});
Вот что вы видите в окне «Часы»:
a = 0 = 0x00 = 0x0000 = 0x00 0000 = 0x0000 0000
b = 167772160 = 16777216 * 10 = 0x1000000 * 0x0A = 0xA000000
c = 655360 = 65536 * 10 = 0x10000 * 0x0A = 0xA0000
d = 10 = 0x0A = 0x0000 000A
Что это значит? Это означает, что ваш компилятор выполнил свою работу, но ваш отладчик читает c
и b
как двойные слова (4 байта) вместо байтов.
Когда он читает в b
, он считывает свое значение 0x00
, значение c
0x0000
и d
сверху 0x0A
, вместе сделав его 0xA000000
.
Подобное происходит с c
. a
повезло, так как следующие 4 байта равны нулю, поэтому a
действительно равен нулю.
Однако это не всегда так. Ничто не говорит о том, что после d
не может быть никакого мусора, не говоря уже о том, что переменные, равные нулю, могут появляться в .bss
(в совершенно другой ячейке памяти).