@mysten/utils
Version:
Shared utilities for @mysten/* packages
25 lines (20 loc) • 528 B
text/typescript
// Copyright (c) Mysten Labs, Inc.
// SPDX-License-Identifier: Apache-2.0
export interface PromiseWithResolvers<T> {
promise: Promise<T>;
resolve: (value: T) => void;
reject: (error: unknown) => void;
}
export function promiseWithResolvers<T>(): PromiseWithResolvers<T> {
let resolver!: (value: T) => void;
let rejecter!: (error: unknown) => void;
const promise = new Promise<T>((resolve, reject) => {
resolver = resolve;
rejecter = reject;
});
return {
promise,
resolve: resolver,
reject: rejecter,
};
}