[mod] queueing ausgelagern
This commit is contained in:
parent
c0abe0a180
commit
9e24750d4d
|
|
@ -127,16 +127,7 @@ namespace _dali.backend
|
|||
|
||||
/**
|
||||
*/
|
||||
var _queue : {
|
||||
items : Array<
|
||||
{
|
||||
request : type_request;
|
||||
resolve : ((result : any) => void);
|
||||
reject : ((reason : any) => void);
|
||||
}
|
||||
>;
|
||||
busy : boolean;
|
||||
};
|
||||
var _queue : lib_plankton.call.type_queue<type_request, any>;
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -160,10 +151,9 @@ namespace _dali.backend
|
|||
)
|
||||
*/
|
||||
);
|
||||
_queue = {
|
||||
"items": [],
|
||||
"busy": false,
|
||||
};
|
||||
_queue = lib_plankton.call.queue_make<type_request, any>(
|
||||
call_real
|
||||
);
|
||||
return Promise.resolve<void>(undefined);
|
||||
}
|
||||
|
||||
|
|
@ -263,60 +253,18 @@ namespace _dali.backend
|
|||
&&
|
||||
(http_response.status_code < 300)
|
||||
)
|
||||
) {
|
||||
)
|
||||
{
|
||||
return Promise.reject<any>(http_response.body.toString());
|
||||
}
|
||||
else {
|
||||
else
|
||||
{
|
||||
const output : any = lib_plankton.json.decode(http_response.body.toString());
|
||||
return Promise.resolve<any>(output);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*/
|
||||
async function process(
|
||||
)
|
||||
: Promise<void>
|
||||
{
|
||||
if (_queue.busy)
|
||||
{
|
||||
// do nothing
|
||||
}
|
||||
else
|
||||
{
|
||||
_queue.busy = true;
|
||||
while (_queue.items.length > 0)
|
||||
{
|
||||
const entry = _queue.items.shift();
|
||||
let successful : boolean;
|
||||
let reason : any;
|
||||
let result : any;
|
||||
try
|
||||
{
|
||||
result = await call_real(entry.request);
|
||||
successful = true;
|
||||
}
|
||||
catch (error)
|
||||
{
|
||||
reason = error;
|
||||
successful = false;
|
||||
}
|
||||
if (successful)
|
||||
{
|
||||
entry.resolve(result);
|
||||
}
|
||||
else
|
||||
{
|
||||
entry.reject(reason);
|
||||
}
|
||||
}
|
||||
_queue.busy = false;
|
||||
// process();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*/
|
||||
async function call(
|
||||
|
|
@ -331,19 +279,18 @@ namespace _dali.backend
|
|||
"action": action,
|
||||
"input": input,
|
||||
};
|
||||
const promise : Promise<any> = new Promise<any>(
|
||||
return (
|
||||
new Promise<any>(
|
||||
(resolve, reject) => {
|
||||
_queue.items.push(
|
||||
{
|
||||
"request": request,
|
||||
"resolve": resolve,
|
||||
"reject": reject,
|
||||
}
|
||||
lib_plankton.call.queue_add<type_request, any>(
|
||||
_queue,
|
||||
request,
|
||||
resolve,
|
||||
reject
|
||||
);
|
||||
}
|
||||
)
|
||||
);
|
||||
process();
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue