MCPcopy Create free account
hub / github.com/Maps4HTML/MapML.js / whenReady

Method whenReady

src/map-link.js:1081–1144  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1079 }
1080 }
1081 whenReady() {
1082 return new Promise((resolve, reject) => {
1083 let interval, failureTimer, ready;
1084 switch (this.rel.toLowerCase()) {
1085 // for some cases, require a dependency check
1086 case 'tile':
1087 case 'image':
1088 case 'features':
1089 ready = '_templatedLayer';
1090 if (this.disabled) resolve();
1091 break;
1092 case 'style':
1093 case 'self':
1094 case 'style self':
1095 case 'self style':
1096 ready = '_styleOption';
1097 break;
1098 case 'query':
1099 ready = 'shadowRoot';
1100 if (this.disabled) resolve();
1101 break;
1102 case 'alternate':
1103 ready = '_alternate';
1104 break;
1105 case 'stylesheet':
1106 if (this.type === 'application/pmtiles+stylesheet') {
1107 ready = '_pmtilesRules';
1108 } else {
1109 ready = '_stylesheetHost';
1110 }
1111 break;
1112 case 'zoomin':
1113 case 'zoomout':
1114 case 'legend':
1115 case 'license':
1116 resolve();
1117 break;
1118 default:
1119 resolve();
1120 break;
1121 }
1122 if (this[ready]) {
1123 resolve();
1124 }
1125 interval = setInterval(testForLinkReady, 300, this);
1126 failureTimer = setTimeout(linkNotDefined, 1000);
1127 function testForLinkReady(linkElement) {
1128 if (linkElement[ready]) {
1129 clearInterval(interval);
1130 clearTimeout(failureTimer);
1131 resolve();
1132 } else if (!linkElement.isConnected) {
1133 clearInterval(interval);
1134 clearTimeout(failureTimer);
1135 reject('map-link was disconnected while waiting to be ready');
1136 }
1137 }
1138 function linkNotDefined() {

Callers 3

_registerMediaQueryMethod · 0.45
_createTemplatedLinkMethod · 0.45
_initTemplateVarsMethod · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected