本文整理匯總了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 } });
});
});
});
示例2:
return this.compiler().flatMap(compiler =>
Kefir.stream(emitter => {
compiler.watch(WebpackService.watch, (err, stats) => {
if (err) {
emitter.error(err);
} else {
emitter.value(stats);
}
});
})
示例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();
});
})
示例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)));
}
示例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;
};
});