Files
Unify/framework/client/promiseManager.js

99 lines
1.6 KiB
JavaScript
Raw Normal View History

2025-12-25 11:16:59 +01:00
/*
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;
}
}