UNPKG

@dcloudio/uni-debugger

Version:

uni-app debugger

53 lines (48 loc) 1.16 kB
// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. /** * @unrestricted */ UI.ThrottledWidget = class extends UI.VBox { /** * @param {boolean=} isWebComponent * @param {number=} timeout */ constructor(isWebComponent, timeout) { super(isWebComponent); this._updateThrottler = new Common.Throttler(timeout === undefined ? 100 : timeout); this._updateWhenVisible = false; } /** * @protected * @return {!Promise<?>} */ doUpdate() { return Promise.resolve(); } update() { this._updateWhenVisible = !this.isShowing(); if (this._updateWhenVisible) return; this._updateThrottler.schedule(innerUpdate.bind(this)); /** * @this {UI.ThrottledWidget} * @return {!Promise<?>} */ function innerUpdate() { if (this.isShowing()) return this.doUpdate(); this._updateWhenVisible = true; return Promise.resolve(); } } /** * @override */ wasShown() { super.wasShown(); if (this._updateWhenVisible) this.update(); } };