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


TypeScript kefir.stream函數代碼示例

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


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

示例1: selectNewProjectContext

    .flatMapFirst(state => {
      const argv = ['project', 'new'];

      for (const [key, value] of Object.entries(
        selectNewProjectContext(state)
      )) {
        argv.push(`--${key}`);
        argv.push(value);
      }

      // @TODO(mAAdhaTTah) check if dir exists and confirm overwrite
      // hygen expects to handle interactivity
      return Kefir.stream(emitter => {
        runner(argv, {
          // NOTE: This is relative to dist, where the build result is.
          templates: path.join(__dirname, '..', 'templates'),
          cwd: state.cwd,
          logger: new Logger(emitter),
          createPrompter: () => inquirer,
          exec: (action, body) => {
            const opts = body && body.length > 0 ? { input: body } : {};
            return execa.shell(action, opts);
          },
          debug: false
        })
          .then(result => {
            emitter.value({ type: 'CREATED', payload: { result } });
          })
          .catch(error => {
            emitter.value({ type: 'FAILED', error: true, payload: { error } });
          });
      });
    });
開發者ID:valtech-nyc,項目名稱:brookjs,代碼行數:33,代碼來源:exec.ts

示例2:

 return this.compiler().flatMap(compiler =>
   Kefir.stream(emitter => {
     compiler.watch(WebpackService.watch, (err, stats) => {
       if (err) {
         emitter.error(err);
       } else {
         emitter.value(stats);
       }
     });
   })
開發者ID:valtech-nyc,項目名稱:brookjs,代碼行數:10,代碼來源:webpack.ts

示例3: getMochaCommand

    .flatMap(state =>
      Kefir.stream(emitter => {
        const command = getMochaCommand(state);

        emitter.value(shellCommand.request(command));

        shelljs.exec(command, { silent: true }, (code, stdout, stderr) => {
          if (code !== 0) {
            emitter.value(shellCommand.failure({ code, stdout, stderr }));
          } else {
            emitter.value(shellCommand.success({ stdout }));
          }

          emitter.end();
        });
      })
開發者ID:valtech-nyc,項目名稱:brookjs,代碼行數:16,代碼來源:exec.ts

示例4: setTimeout

			} else {
				emitter.end();
			}
		});
	}
	let stream07: Stream<number, void> = Kefir.fromCallback<number>(callback => setTimeout(() => callback(1), 1000));
	let stream08: Stream<number, void> = Kefir.fromNodeCallback<number, void>(callback => setTimeout(() => callback(null, 1), 1000));
	let stream09: Stream<MouseEvent, void> = Kefir.fromEvents<MouseEvent, void>(document.body, 'click');
	let stream10: Stream<number, void> = Kefir.stream<number, void>(emitter => {
		let count = 0;
		emitter.emit(count);
	
		let intervalId = setInterval(() => {
			count++;
			if (count < 4) {
				emitter.emit(count);
			} else {
				emitter.end();
			}
		}, 1000);
	
		return () => clearInterval(intervalId);
	});
}

// Create a property
{
	let property01: Property<number, void> = Kefir.constant(1);
	let property02: Property<void, number> = Kefir.constantError(1);
	let property03: Property<number, void> = Kefir.fromPromise<number, void>(new Promise<number>(fulfill => fulfill(1)));
}
開發者ID:ErykB2000,項目名稱:DefinitelyTyped,代碼行數:31,代碼來源:kefir-tests.ts

示例5: schedule

  }
);

/**
 * The type emitted by the raf$ stream.
 */
export type RAFAction = ReturnType<typeof rafAction>;

/**
 * Stream of requestAnimationFrame events.
 */
export const raf$: Stream<RAFAction, void> = Kefir.stream(emitter => {
  let loop: number;
  let enabled = true;

  (function schedule() {
    loop = requestAnimationFrame(time => {
      (emitter as any).value(rafAction(time));

      if (enabled) {
        schedule();
      }
    });
  })();

  return () => {
    cancelAnimationFrame(loop);
    enabled = false;
  };
});
開發者ID:valtech-nyc,項目名稱:brookjs,代碼行數:30,代碼來源:rAF.ts


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