¬ документации по autobahnJS приведен следующий пример, чтобы проиллюстрировать, как сделать настройку удаленного вызова процедур (RPC):
...
// 3) register a procedure for remoting
function add2(args) {
return args[0] + args[1];
}
session.register('com.myapp.add2', add2);
// 4) call a remote procedure
session.call('com.myapp.add2', [2, 3]).then(
function (res) {
console.log("Result:", res);
}
);
...
„то делать, если add2 необходимо выполнить некоторую операцию async? ћо¤ иде¤ заключалась в том, что, возможно, можно было бы перезвонить другую удаленную функцию, зарегистрированную на клиенте, котора¤ вызвала первоначальный вызов backend.add2. „то-то вроде этого:
...
//backend code
function add2(args) {
setTimeout(function() {
console.log("We are done here");
session.call('client.added', [123])
}, 1000);
return null; // useless, this value is never used
}
session.register('backend.add2', add2);
// client code
session.call('backend.add2', [2, 3]).then(
function (res) {
console.log("Result:", res);
}
);
...
¬ы видите лучший вариант? ћне это кажетс¤ немного громоздким. ¬ идеале add2 вернет обещание. Ќо ¤ не уверен, возможно ли это в RPC?
javascript,asynchronous,rpc,autobahnjs,