zioinfo-mail/app/node_modules/fbjs/lib/PromiseMap.js.flow
DESKTOP-TKLFCPR\ython 11c670f2a0 refactor: 101.79.17.164 → zioinfo.co.kr 전체 도메인 변환 + Manager UI 배포
- 37개 파일 IP → zioinfo.co.kr 치환 (소스/매뉴얼/설정/하네스)
- Manager DrConsole/NetworkConsole/CsapConsole 빌드 + /var/www/manager/ 배포
- 테스트: Manager HTTP 200, ITSM 신규 API 7개 전체 200

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 10:09:17 +09:00

59 lines
1.4 KiB
Plaintext

/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @providesModule PromiseMap
* @flow
*/
'use strict';
const Deferred = require("./Deferred");
const invariant = require("./invariant");
/**
* A map of asynchronous values that can be get or set in any order. Unlike a
* normal map, setting the value for a particular key more than once throws.
* Also unlike a normal map, a key can either be resolved or rejected.
*/
class PromiseMap<Tvalue, Treason> {
_deferred: {
[key: string]: Deferred<any, any>
};
constructor() {
this._deferred = {};
}
get(key: string): Promise<any> {
return getDeferred(this._deferred, key).getPromise();
}
resolveKey(key: string, value: Tvalue): void {
const entry = getDeferred(this._deferred, key);
invariant(!entry.isSettled(), 'PromiseMap: Already settled `%s`.', key);
entry.resolve(value);
}
rejectKey(key: string, reason: Treason): void {
const entry = getDeferred(this._deferred, key);
invariant(!entry.isSettled(), 'PromiseMap: Already settled `%s`.', key);
entry.reject(reason);
}
}
function getDeferred(entries: {
[key: string]: Deferred<any, any>
}, key: string): Deferred<any, any> {
if (!entries.hasOwnProperty(key)) {
entries[key] = new Deferred();
}
return entries[key];
}
module.exports = PromiseMap;