Это невозможно, поскольку обратный вызов выполняется асинхронно.Это означает, что функция getPhp возвращается до выполнения обратного вызова (это определение обратного вызова, и одна из причин трудного асинхронного программирования ;-)).
То, что вы хотите сделать, - это создать новыйметод, который использует переменную test
.Вы должны вызывать этот метод при выполнении обратного вызова.
т.е.
function one(result) {
var test = result;
// Do anything you like
}
function getPhp(number, callback) {
this.serviceBroker = new dojo.rpc.JsonService(baseUrl + '/index/json-rpc/');
result.addCallback(
function (response)
{
if (response.result == 'success')
{
callback(response.description);
}
}
);
}
getPhp(number, function(result) { one(result); });
Этот последний метод создает «анонимную функцию», которая передается в функцию getPhp.Эта функция выполняется во время получения ответа.Таким образом, вы можете передавать данные в one(number)
функцию после получения данных.