UNPKG

@zowe/imperative

Version:
51 lines 1.86 kB
"use strict"; /* * This program and the accompanying materials are made available under the terms of the * Eclipse Public License v2.0 which accompanies this distribution, and is available at * https://www.eclipse.org/legal/epl-v20.html * * SPDX-License-Identifier: EPL-2.0 * * Copyright Contributors to the Zowe Project. * */ Object.defineProperty(exports, "__esModule", { value: true }); exports.DeferredPromise = exports.DeferredPromiseStatus = void 0; /* Status of the deferred promise */ var DeferredPromiseStatus; (function (DeferredPromiseStatus) { DeferredPromiseStatus["Pending"] = "pending"; DeferredPromiseStatus["Resolved"] = "resolved"; DeferredPromiseStatus["Rejected"] = "rejected"; })(DeferredPromiseStatus || (exports.DeferredPromiseStatus = DeferredPromiseStatus = {})); /** * @brief Externally control the resolution and rejection of a promise. * * @details * Creates a promise with accessible `resolve` and `reject` methods, enabling external entities to * settle the promise based on custom logic or asynchronous events. This is particularly useful when * the promise's outcome depends on factors outside the immediate context. */ class DeferredPromise { constructor() { this.mStatus = DeferredPromiseStatus.Pending; this.promise = new Promise((resolve, reject) => { this.resolve = (value) => { this.mStatus = DeferredPromiseStatus.Resolved; resolve(value); }; this.reject = (err) => { this.mStatus = DeferredPromiseStatus.Rejected; reject(err); }; }); } /** * @returns {PromiseStatus} The status of the deferred promise */ get status() { return this.mStatus; } } exports.DeferredPromise = DeferredPromise; //# sourceMappingURL=DeferredPromise.js.map