* Returns a promise that waits until the custom element is defined. * If the custom element is already defined, returns a resolved promise. * * @param {string} name * @return {!Promise }
(name)
| 145 | * @return {!Promise<undefined>} |
| 146 | */ |
| 147 | whenDefined(name) { |
| 148 | const {Promise, SyntaxError} = this.win_; |
| 149 | assertValidName(SyntaxError, name); |
| 150 | |
| 151 | if (this.registry_.getByName(name)) { |
| 152 | return Promise.resolve(); |
| 153 | } |
| 154 | |
| 155 | const pending = this.pendingDefines_; |
| 156 | let deferred = pending[name]; |
| 157 | if (!deferred) { |
| 158 | deferred = new Deferred(); |
| 159 | pending[name] = deferred; |
| 160 | } |
| 161 | |
| 162 | return deferred.promise; |
| 163 | } |
| 164 | |
| 165 | /** |
| 166 | * Upgrade all custom elements inside root. |
no test coverage detected