Не могу понять в чем подвох: есть функция:
function foo(){
		var value = "ла-ла-ла";
		var callback = function(result, errors) {
				if (1 == result["result"]) {
					value = result.data.value;
// в консоль выводится полученное  result.data.value = "ура-ура"
					console.log(value);
				}
		};
		JsHttpRequest.query(
			'tra_ta_ta.php',
			{...}, 
			callback,
			false
		);
		return value;
}
Если в отладчике(firebug) поставить брейкпоинт все работает - возвращает  "ура-ура", иначе возвращает "ла-ла-ла". 
Подскажите, что не так и как лечится?