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


TypeScript coreutils.PromiseDelegate類代碼示例

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


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

示例1: it

    it('should run handlers in order', async () => {
      const options: KernelMessage.IExecuteRequest = {
        code: 'test',
        silent: false,
        store_history: true,
        user_expressions: {},
        allow_stdin: true,
        stop_on_error: false
      };

      const tester = new KernelTester();
      const kernel = await tester.start();
      const future = kernel.requestExecute(options, false);

      // The list of emissions from the anyMessage signal.
      const msgSignal: string[][] = [];
      const msgSignalExpected: string[][] = [];

      // The list of message processing calls
      const calls: string[][] = [];
      const callsExpected: string[][] = [];

      function pushIopub(msgId: string) {
        callsExpected.push([msgId, 'future hook a']);
        callsExpected.push([msgId, 'future hook b']);
        callsExpected.push([msgId, 'kernel hook a']);
        callsExpected.push([msgId, 'kernel hook b']);
        callsExpected.push([msgId, 'iopub']);
        msgSignalExpected.push([msgId, 'iopub']);
      }

      function pushCommOpen(msgId: string) {
        pushIopub(msgId);
        callsExpected.push([msgId, 'comm open']);
      }

      function pushCommMsg(msgId: string) {
        pushIopub(msgId);
        callsExpected.push([msgId, 'comm msg']);
      }

      function pushCommClose(msgId: string) {
        pushIopub(msgId);
        callsExpected.push([msgId, 'comm close']);
      }

      function pushStdin(msgId: string) {
        callsExpected.push([msgId, 'stdin']);
        msgSignalExpected.push([msgId, 'stdin']);
      }

      function pushReply(msgId: string) {
        callsExpected.push([msgId, 'reply']);
        msgSignalExpected.push([msgId, 'shell']);
      }

      const anyMessageDone = new PromiseDelegate();
      const handlingBlock = new PromiseDelegate();

      tester.onMessage(message => {
        tester.onMessage(() => {
          return;
        });
        tester.parentHeader = message.header;

        pushIopub(tester.sendStatus('busy', 'busy'));
        pushIopub(tester.sendStream('stdout', { name: 'stdout', text: 'foo' }));
        pushCommOpen(
          tester.sendCommOpen('comm open', {
            target_name: 'commtarget',
            comm_id: 'commid',
            data: {}
          })
        );
        pushIopub(
          tester.sendDisplayData('display 1', { data: {}, metadata: {} })
        );
        pushCommMsg(
          tester.sendCommMsg('comm 1', { comm_id: 'commid', data: {} })
        );
        pushCommMsg(
          tester.sendCommMsg('comm 2', { comm_id: 'commid', data: {} })
        );
        pushCommClose(
          tester.sendCommClose('comm close', { comm_id: 'commid', data: {} })
        );
        pushStdin(
          tester.sendInputRequest('stdin', { prompt: '', password: false })
        );
        pushIopub(
          tester.sendDisplayData('display 2', {
            data: {},
            metadata: {},
            transient: { display_id: 'displayid' }
          })
        );
        pushIopub(
          tester.sendUpdateDisplayData('update display', {
            data: {},
            metadata: {},
//.........這裏部分代碼省略.........
開發者ID:AlbertHilb,項目名稱:jupyterlab,代碼行數:101,代碼來源:ikernel.spec.ts

示例2: expect

 tester.onMessage(msg => {
   expect(msg.header.msg_type).to.equal('input_reply');
   done.resolve(null);
 });
開發者ID:AlbertHilb,項目名稱:jupyterlab,代碼行數:4,代碼來源:ikernel.spec.ts

示例3:

 kernel.anyMessage.connect((k, args) => {
   msgSignal.push([args.msg.header.msg_id, args.msg.channel]);
   if (args.msg.header.msg_id === 'execute reply') {
     anyMessageDone.resolve(undefined);
   }
 });
開發者ID:AlbertHilb,項目名稱:jupyterlab,代碼行數:6,代碼來源:ikernel.spec.ts

示例4:

 const hook = (comm: Kernel.IComm, msg: KernelMessage.ICommOpenMsg) => {
   promise.resolve([comm, msg]);
 };
開發者ID:willingc,項目名稱:jupyterlab,代碼行數:3,代碼來源:comm.spec.ts

示例5:

 .then(() => { transform.resolve(transformation); })
開發者ID:groutr,項目名稱:jupyterlab,代碼行數:1,代碼來源:statedb.spec.ts

示例6:

 .catch(reason => {
   conflated.reject(reason);
   conflated = null;
 });
開發者ID:groutr,項目名稱:jupyterlab,代碼行數:4,代碼來源:index.ts

示例7: workspace

      execute: (args: IRouter.ILocation) => {
        // Since the command can be executed an arbitrary number of times, make
        // sure it is safe to call multiple times.
        if (resolved) {
          return;
        }

        const { hash, path, search } = args;
        const workspace = Private.getWorkspace(router);
        const query = URLExt.queryStringToObject(search || '');
        const clone = query['clone'];
        const source = typeof clone === 'string' ? clone : workspace;

        let promise: Promise<any>;

        // If the default /lab workspace is being cloned, copy it out of local
        // storage instead of making a round trip to the server because it
        // does not exist on the server.
        if (source === clone && source === '') {
          const prefix = `${source}:${info.namespace}:`;
          const mask = (key: string) => key.replace(prefix, '');
          const contents = StateDB.toJSON(prefix, mask);

          resolved = true;
          transform.resolve({ type: 'overwrite', contents });
          promise = Promise.resolve();
        }


        // If there is no promise, fetch the source and overwrite the database.
        promise = promise || workspaces.fetch(source).then(saved => {
          // If this command is called after a reset, the state database will
          // already be resolved.
          if (!resolved) {
            resolved = true;
            transform.resolve({ type: 'overwrite', contents: saved.data });
          }
        }).catch(reason => {
          console.warn(`Fetching workspace (${workspace}) failed:`, reason);

          // If the workspace does not exist, cancel the data transformation and
          // save a workspace with the current user state data.
          if (!resolved) {
            resolved = true;
            transform.resolve({ type: 'cancel', contents: null });
          }
        }).then(() => {
          // Any time the local state database changes, save the workspace.
          if (workspace) {
            state.changed.connect(listener, state);
          }
        });

        return promise.catch(reason => {
          console.warn(`${CommandIDs.loadState} failed:`, reason);
        }).then(() => {
          const immediate = true;

          if (source === clone) {
            // Maintain the query string parameters but remove `clone`.
            delete query['clone'];

            const url = path + URLExt.objectToQueryString(query) + hash;
            const cloned = commands.execute(CommandIDs.saveState, { immediate })
              .then(() => router.stop);

            // After the state has been cloned, navigate to the URL.
            cloned.then(() => { router.navigate(url, { silent: true }); });

            return cloned;
          }

          // After the state database has finished loading, save it.
          return commands.execute(CommandIDs.saveState, { immediate });
        });
      }
開發者ID:groutr,項目名稱:jupyterlab,代碼行數:76,代碼來源:index.ts


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