@polymer/polymer
Version:
The Polymer library makes it easy to create your own web components. Give your element some markup and properties, and then use it on a site. Polymer provides features like dynamic templates and data binding to reduce the amount of boilerplate you need to
95 lines (81 loc) • 2.97 kB
TypeScript
/**
* DO NOT EDIT
*
* This file was automatically generated by
* https://github.com/Polymer/tools/tree/master/packages/gen-typescript-declarations
*
* To modify these typings, edit the source file(s):
* lib/utils/debounce.html
*/
// tslint:disable:variable-name Describing an API that's defined elsewhere.
// tslint:disable:no-any describes the API as best we are able today
/// <reference path="boot.d.ts" />
/// <reference path="mixin.d.ts" />
/// <reference path="async.d.ts" />
declare namespace Polymer {
class Debouncer {
constructor();
/**
* Creates a debouncer if no debouncer is passed as a parameter
* or it cancels an active debouncer otherwise. The following
* example shows how a debouncer can be called multiple times within a
* microtask and "debounced" such that the provided callback function is
* called once. Add this method to a custom element:
*
* _debounceWork() {
* this._debounceJob = Polymer.Debouncer.debounce(this._debounceJob,
* Polymer.Async.microTask, () => {
* this._doWork();
* });
* }
*
* If the `_debounceWork` method is called multiple times within the same
* microtask, the `_doWork` function will be called only once at the next
* microtask checkpoint.
*
* Note: In testing it is often convenient to avoid asynchrony. To accomplish
* this with a debouncer, you can use `Polymer.enqueueDebouncer` and
* `Polymer.flush`. For example, extend the above example by adding
* `Polymer.enqueueDebouncer(this._debounceJob)` at the end of the
* `_debounceWork` method. Then in a test, call `Polymer.flush` to ensure
* the debouncer has completed.
*
* @param debouncer Debouncer object.
* @param asyncModule Object with Async interface
* @param callback Callback to run.
* @returns Returns a debouncer object.
*/
static debounce(debouncer: Debouncer|null, asyncModule: AsyncInterface, callback: () => any): Debouncer;
/**
* Sets the scheduler; that is, a module with the Async interface,
* a callback and optional arguments to be passed to the run function
* from the async module.
*
* @param asyncModule Object with Async interface.
* @param callback Callback to run.
*/
setConfig(asyncModule: AsyncInterface, callback: () => any): void;
/**
* Cancels an active debouncer and returns a reference to itself.
*/
cancel(): void;
/**
* Cancels a debouncer's async callback.
*/
_cancelAsync(): void;
/**
* Flushes an active debouncer and returns a reference to itself.
*/
flush(): void;
/**
* Returns true if the debouncer is active.
*
* @returns True if active.
*/
isActive(): boolean;
}
/**
* Adds a `Debouncer` to a list of globally flushable tasks.
*/
function enqueueDebouncer(debouncer: Debouncer): void;
}