UNPKG

slavery-js

Version:

A simple clustering app that allows you to scale an application on multiple thread, containers or machines

1 lines 1.8 kB
{"version":3,"sources":["../../src/utils/await_interval.ts"],"sourcesContent":["/* this function is used to await a condition to be met with a certain interval and timeout\n * until the condition is met or the timeout is reached */\nasync function interval_await(condition: () => any, \n timeout: number = 10000,\n interval: number = 100) : Promise<any> {\n return await new Promise( async (resolve, reject) => {\n let timeout_obj : NodeJS.Timeout \n let interval_obj : NodeJS.Timeout \n // set a timeout to reject the promise\n if(timeout > 0){\n timeout_obj = setTimeout(() => {\n clearInterval(interval_obj);\n reject('timeout');\n }, timeout);\n }\n // set an interval to check the condition\n interval_obj = setInterval( async () => {\n // check if the condition is met\n let result: Boolean = await condition();\n if(result === true) {\n clearInterval(interval_obj);\n clearTimeout(timeout_obj);\n resolve(result);\n }\n }, interval);\n }).catch( error => {\n throw error;\n });\n}\n\nexport default interval_await;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,eAAe,eAAe,WACA,UAAkB,KAClB,WAAmB,KAAoB;AACjE,SAAO,MAAM,IAAI,QAAS,OAAO,SAAS,WAAW;AACjD,QAAI;AACJ,QAAI;AAEJ,QAAG,UAAU,GAAE;AACX,oBAAc,WAAW,MAAM;AAC3B,sBAAc,YAAY;AAC1B,eAAO,SAAS;AAAA,MACpB,GAAG,OAAO;AAAA,IACd;AAEA,mBAAe,YAAa,YAAa;AAErC,UAAI,SAAkB,MAAM,UAAU;AACtC,UAAG,WAAW,MAAM;AAChB,sBAAc,YAAY;AAC1B,qBAAa,WAAW;AACxB,gBAAQ,MAAM;AAAA,MAClB;AAAA,IACJ,GAAG,QAAQ;AAAA,EACf,CAAC,EAAE,MAAO,WAAS;AACf,UAAM;AAAA,EACV,CAAC;AACL;AAEA,IAAO,yBAAQ;","names":[]}