Urara-Blog/node_modules/.pnpm-store/v3/files/73/6b0549bd980cf98dc4afdb6187d3cf3827524645905cfa3707011b42608515af38ce36113d4b37d8757e1de135dc8ca697cdd2c84bd4e85eaa0f43e58b1691
2022-08-14 01:14:53 +08:00

35 lines
868 B
Text

/*
Copyright 2018 Google LLC
Use of this source code is governed by an MIT-style
license that can be found in the LICENSE file or at
https://opensource.org/licenses/MIT.
*/
import '../_version.js';
/**
* The Deferred class composes Promises in a way that allows for them to be
* resolved or rejected from outside the constructor. In most cases promises
* should be used directly, but Deferreds can be necessary when the logic to
* resolve a promise must be separate.
*
* @private
*/
class Deferred<T> {
promise: Promise<T>;
resolve!: (value: T) => void;
reject!: (reason?: any) => void;
/**
* Creates a promise and exposes its resolve and reject functions as methods.
*/
constructor() {
this.promise = new Promise((resolve, reject) => {
this.resolve = resolve;
this.reject = reject;
});
}
}
export {Deferred};