/** * @license * Copyright 2020 Google Inc. * SPDX-License-Identifier: Apache-2.0 */ /** * @internal */ export class TaskQueue { #chain: Promise<void>; constructor() { this.#chain = Promise.resolve(); } postTask<T>(task: () => Promise<T>): Promise<T> { const result = this.#chain.then(task); this.#chain = result.then( () => { return undefined; }, () => { return undefined; } ); return result; } }