You're confusing the return inside addCallback with the return from
the outer getOffice function.
--- modified example:
var getOffice = function(county_id) {
var d = loadJSONDoc('/office_from_countytype/'+ county_id +'/');
var off_id;
d.addCallback(function (result) {
off_id=result[0].fields['office'];
log('got office id: '+ off_id);
return off_id;
});
return d; // <--- !
}
... now, a user can get 'off_id' like this.
var d = getOffice(country_id);
d.addCallback(function(off_id) {
log('got office id:', off_id);
});
(since getOffice makes an asynchronous request any return from it
must, by definition, also be asynchronous.)
HTH
// Fredrik Blomqvist