当前位置: 首页>>代码示例>>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;未经允许,请勿转载。