js: This RPC info does not need to be global.
This commit is contained in:
parent
68590cae33
commit
4864a0411f
31
core/app.js
31
core/app.js
@ -1,8 +1,5 @@
|
|||||||
import * as core from './core.js';
|
import * as core from './core.js';
|
||||||
|
|
||||||
let g_next_id = 1;
|
|
||||||
let g_calls = {};
|
|
||||||
|
|
||||||
let gSessionIndex = 0;
|
let gSessionIndex = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -20,6 +17,8 @@ function makeSessionId() {
|
|||||||
function App() {
|
function App() {
|
||||||
this._on_output = null;
|
this._on_output = null;
|
||||||
this._send_queue = [];
|
this._send_queue = [];
|
||||||
|
this.calls = {};
|
||||||
|
this._next_call_id = 1;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -39,12 +38,12 @@ App.prototype.readOutput = function (callback) {
|
|||||||
App.prototype.makeFunction = function (api) {
|
App.prototype.makeFunction = function (api) {
|
||||||
let self = this;
|
let self = this;
|
||||||
let result = function () {
|
let result = function () {
|
||||||
let id = g_next_id++;
|
let id = self._next_call_id++;
|
||||||
while (!id || g_calls[id]) {
|
while (!id || self.calls[id]) {
|
||||||
id = g_next_id++;
|
id = self._next_call_id++;
|
||||||
}
|
}
|
||||||
let promise = new Promise(function (resolve, reject) {
|
let promise = new Promise(function (resolve, reject) {
|
||||||
g_calls[id] = {resolve: resolve, reject: reject};
|
self.calls[id] = {resolve: resolve, reject: reject};
|
||||||
});
|
});
|
||||||
let message = {
|
let message = {
|
||||||
message: 'tfrpc',
|
message: 'tfrpc',
|
||||||
@ -215,13 +214,19 @@ exports.app_socket = async function socket(request, response) {
|
|||||||
} else if (message.action == 'createIdentity') {
|
} else if (message.action == 'createIdentity') {
|
||||||
await process.createIdentity();
|
await process.createIdentity();
|
||||||
} else if (message.message == 'tfrpc') {
|
} else if (message.message == 'tfrpc') {
|
||||||
if (message.id && g_calls[message.id]) {
|
if (message.id) {
|
||||||
if (message.error !== undefined) {
|
let calls = process?.app?.calls;
|
||||||
g_calls[message.id].reject(message.error);
|
if (calls) {
|
||||||
} else {
|
let call = calls[message.id];
|
||||||
g_calls[message.id].resolve(message.result);
|
if (call) {
|
||||||
|
if (message.error !== undefined) {
|
||||||
|
call.reject(message.error);
|
||||||
|
} else {
|
||||||
|
call.resolve(message.result);
|
||||||
|
}
|
||||||
|
delete calls[message.id];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
delete g_calls[message.id];
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (process && process.eventHandlers['message']) {
|
if (process && process.eventHandlers['message']) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user