MCPcopy
hub / github.com/DO-SAY-GO/dn / untilTrue

Function untilTrue

src/common.js:107–131  ·  view source on GitHub ↗
(pred, waitOverride = MIN_WAIT, maxWaits = MAX_WAITS)

Source from the content-addressed store, hash-verified

105}
106
107export async function untilTrue(pred, waitOverride = MIN_WAIT, maxWaits = MAX_WAITS) {
108 if ( waitOverride < 0 ) {
109 maxWaits = -1;
110 waitOverride = MIN_WAIT;
111 }
112 let waitCount = 0;
113 let resolve;
114 const pr = new Promise(res => resolve = res);
115 setTimeout(checkPred, 0);
116 return pr;
117
118 async function checkPred() {
119 DEBUG.checkPred && console.log('Checking', pred.toString());
120 if ( await pred() ) {
121 return resolve(true);
122 } else {
123 waitCount++;
124 if ( waitCount < maxWaits || maxWaits < 0 ) {
125 setTimeout(checkPred, waitOverride);
126 } else {
127 resolve(false);
128 }
129 }
130 }
131}

Callers 5

connectFunction · 0.90
indexURLFunction · 0.90
isReadyFunction · 0.90
archiveAndIndexURLFunction · 0.90
startCrawlFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected