99 lines
1.6 KiB
JavaScript
99 lines
1.6 KiB
JavaScript
/*
|
|
|
|
Copyright (c) 2020, 2023, The Unified Company.
|
|
|
|
This code is part of Unify.
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE,
|
|
as published by the Free Software Foundation.
|
|
See the GNU AFFERO GENERAL PUBLIC LICENSE, for more details.
|
|
|
|
https://unifyjs.org
|
|
|
|
*/
|
|
|
|
export default class promiseManager{
|
|
|
|
promises = new Array();
|
|
|
|
messages = new Array();
|
|
|
|
socketManager;
|
|
|
|
addPromise( promiseObject ) {
|
|
|
|
this.promises.push( promiseObject );
|
|
|
|
}
|
|
|
|
addMessage( message ) {
|
|
|
|
this.messages.push( message );
|
|
|
|
}
|
|
|
|
getPromiseByID( id ) {
|
|
|
|
var promises = this.promises;
|
|
|
|
for(var c = 0; c<promises.length; c++) {
|
|
|
|
var currentPromise = promises[c];
|
|
|
|
if( currentPromise.id == id ) {
|
|
|
|
return currentPromise;
|
|
|
|
}
|
|
}
|
|
|
|
console.error("Promise with id " + id + " not found:", this);
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
getMessageByID( id ) {
|
|
|
|
var messages = this.messages;
|
|
|
|
for(var c = 0; c<messages.length; c++) {
|
|
|
|
var message = messages[c];
|
|
|
|
if( message.id == id ) {
|
|
|
|
return message;
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
createPromiseFunction( messageID, object = false ) {
|
|
|
|
var promiseManager = this;
|
|
|
|
function promiseFunction( resolveFunction ){
|
|
|
|
var promiseObject = {};
|
|
|
|
promiseObject.id = messageID;
|
|
|
|
promiseObject.resolve = resolveFunction;
|
|
|
|
promiseObject.object = object;
|
|
|
|
|
|
promiseManager.addPromise( promiseObject );
|
|
|
|
}
|
|
|
|
return promiseFunction;
|
|
}
|
|
|
|
}
|
|
|
|
|