當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript map-like.MapLike類代碼示例

本文整理匯總了TypeScript中map-like.MapLike的典型用法代碼示例。如果您正苦於以下問題:TypeScript MapLike類的具體用法?TypeScript MapLike怎麽用?TypeScript MapLike使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了MapLike類的8個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: withoutDuplicated

 /**
  * filter duplicated rules and rulesConfig and return new RuleCreatorSet.
  * @return {RuleCreatorSet}
  */
 withoutDuplicated(): RuleCreatorSet {
     const newRawRules: {
         [index: string]: any;
     } = {};
     const newRawRulesConfig: {
         [index: string]: any;
     } = {};
     // for index
     const addedRuleMap = new MapLike<string, any[]>();
     // if already contain same ruleModule and ruleConfig value
     // Fill following condition, remove it
     // 1. same ruleModule
     // 2. same ruleConfig
     this.ruleNames.forEach(ruleName => {
         const rule = this.rules[ruleName];
         const ruleConfig = this.rulesConfig[ruleName];
         const savedConfigList = addedRuleMap.get(rule) || [];
         // same ruleCreator and ruleConfig
         const hasSameConfig = savedConfigList.some(savedConfig => {
             return deepEqual(savedConfig, ruleConfig, { strict: true });
         });
         if (hasSameConfig) {
             return;
         }
         newRawRules[ruleName] = rule;
         newRawRulesConfig[ruleName] = ruleConfig;
         // saved
         savedConfigList.push(ruleConfig);
         addedRuleMap.set(rule, savedConfigList);
     });
     addedRuleMap.clear();
     return new RuleCreatorSet(newRawRules, newRawRulesConfig);
 }
開發者ID:,項目名稱:,代碼行數:37,代碼來源:

示例2: it

 it("The user can know that the UseCase is just finished by isUseCaseFinished", () => {
     const dispatcher = new Dispatcher();
     const context = new Context({
         dispatcher,
         store: createStore({ name: "test" })
     });
     const useCase = new DispatchUseCase();
     let callCount = 0;
     const finishedCallback = () => {
         callCount++;
     };
     const calledMap = new MapLike();
     dispatcher.onDispatch((payload, meta) => {
         if (payload instanceof DidExecutedPayload && meta.useCase && meta.isUseCaseFinished) {
             calledMap.set(meta.useCase.id, true);
             finishedCallback();
         } else if (payload instanceof CompletedPayload && meta.useCase && meta.isUseCaseFinished) {
             if (calledMap.has(meta.useCase.id)) {
                 return void calledMap.delete(meta.useCase.id);
             }
             finishedCallback();
         }
         return;
     });
     return context
         .useCase(useCase)
         .execute({ type: "test" })
         .then(() => {
             assert.equal(callCount, 1);
         });
 });
開發者ID:almin,項目名稱:almin,代碼行數:31,代碼來源:DispatcherPayloadMeta-test.ts

示例3: LogChunk

 const onCompleteUseCase = (payload: CompletedPayload, meta: DispatcherPayloadMeta) => {
     const useCase = meta.useCase;
     if (!useCase) {
         return;
     }
     const resultValue = payload.value;
     const logGroup = this.useCaseLogGroupMap.get(useCase);
     if (!logGroup) {
         console.warn("Warning(almin-logger): logGroup is not found. please report as issue.", payload, meta);
         return;
     }
     logGroup.addChunk(
         new LogChunk({
             useCase,
             payload,
             log: [`${useCase.name} is completed:`, resultValue],
             timeStamp: meta.timeStamp
         })
     );
     const transactionLogGroup = getTransactionLogGroup(meta);
     if (!transactionLogGroup) {
         outputLogging(logGroup);
     }
     this.useCaseLogGroupMap.delete(useCase);
 };
開發者ID:almin,項目名稱:almin,代碼行數:25,代碼來源:AsyncLogger.ts

示例4: finishedCallback

 dispatcher.onDispatch((payload, meta) => {
     if (payload instanceof DidExecutedPayload && meta.useCase && meta.isUseCaseFinished) {
         calledMap.set(meta.useCase.id, true);
         finishedCallback();
     } else if (payload instanceof CompletedPayload && meta.useCase && meta.isUseCaseFinished) {
         if (calledMap.has(meta.useCase.id)) {
             return void calledMap.delete(meta.useCase.id);
         }
         finishedCallback();
     }
     return;
 });
開發者ID:almin,項目名稱:almin,代碼行數:12,代碼來源:DispatcherPayloadMeta-test.ts

示例5: close

 /**
  * End transaction of the useCaseExecutor/UseCase
  */
 close(useCaseExecutor: UseCaseExecutor<any>) {
     const unsubscribe = this.unsubscribeMap.get(useCaseExecutor);
     if (typeof unsubscribe !== "function") {
         console.error(
             "Warning(UnitOfWork): This UseCaseExecutor is not opened or already closed.",
             useCaseExecutor
         );
         return;
     }
     unsubscribe();
     this.unsubscribeMap.delete(useCaseExecutor);
 }
開發者ID:almin,項目名稱:almin,代碼行數:15,代碼來源:UseCaseUnitOfWork.ts

示例6: deepEqual

 this.ruleNames.forEach(ruleName => {
     const rule = this.rules[ruleName];
     const ruleConfig = this.rulesConfig[ruleName];
     const savedConfigList = addedRuleMap.get(rule) || [];
     // same ruleCreator and ruleConfig
     const hasSameConfig = savedConfigList.some(savedConfig => {
         return deepEqual(savedConfig, ruleConfig, { strict: true });
     });
     if (hasSameConfig) {
         return;
     }
     newRawRules[ruleName] = rule;
     newRawRulesConfig[ruleName] = ruleConfig;
     // saved
     savedConfigList.push(ruleConfig);
     addedRuleMap.set(rule, savedConfigList);
 });
開發者ID:,項目名稱:,代碼行數:17,代碼來源:

示例7:

 const getTransactionLogGroup = (meta: DispatcherPayloadMeta) => {
     // if it is transaction, add this logGroup as child of transaction
     const transactionId = meta.transaction && meta.transaction.id;
     if (transactionId) {
         return this._transactionMap.get(transactionId);
     }
     return;
 };
開發者ID:almin,項目名稱:almin,代碼行數:8,代碼來源:AsyncLogger.ts

示例8: LogGroup

 const onBeginTransaction = (_payload: TransactionBeganPayload, meta: DispatcherPayloadMeta) => {
     if (!meta.transaction) {
         console.warn("meta.transaction is missing");
         return;
     }
     const logGroup = new LogGroup({ title: meta.transaction.name, isTransaction: true });
     this._transactionMap.set(meta.transaction.id, logGroup);
     // the logGroup is root
     this.currentLogBuffer.push(logGroup);
 };
開發者ID:almin,項目名稱:almin,代碼行數:10,代碼來源:AsyncLogger.ts


注:本文中的map-like.MapLike類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。