Я хочу получить результат вызова JsonRPC на PHP-сервер на каждый JavaScript для дальнейшего использования (диаграмма с Chart.js). Для этого у меня есть функция, которая должна выполнять вызов и возвращать результат. Я использую этот плагин JQuery: https://github.com/datagraph/jquery-jsonrpcРисунок диаграммы с Chart.js, заполненными данными, полученными на JsonRPC
$.jsonRPC.setup({
endPoint: '/jsonserver.php'
});
var res; // first place
function getMyStuff() {
var res; // second place as alternative
$.jsonRPC.request('getResultsById', {
params: [1],
success: function(result) {
alert(JSON.stringify(result, null, 4)); // works well
res = result;
},
error: function(result) {
alert("error: " + JSON.stringify(result, null, 4));
}
});
return res;
}
Моя проблема заключается в том, что я не знаю, как получить результат из блока успеха. Если я вызываю функцию, я всегда получаю неопределенное значение.
Извините, но то, что ваш вопрос именно? Вы просто пытаетесь вернуть функцию в формате json? –
Да, это то, чего я хочу. Я потратил целый день, пытаясь заставить это работать, но я думаю, что я большой noob в JavaScript ... Так что, возможно, указывать мне в правильном направлении было бы достаточно. Это, наверное, проклятие, но я не нашел ничего сопоставимого. –
Вы получаете и неопределенный результат, потому что запрос является асинхронным, поэтому, когда вы возвращаете результат, запрос еще не вернулся. Вы должны использовать обещания или обратные вызовы, поэтому, когда вызывается функция успеха, обратный вызов вызывается с результатом. – satchcoder