本文整理汇总了TypeScript中redux-saga.buffers类的典型用法代码示例。如果您正苦于以下问题:TypeScript buffers类的具体用法?TypeScript buffers怎么用?TypeScript buffers使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了buffers类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: testEventChannel
function testEventChannel(secs: number) {
const subscribe = (emitter: (input: number | END) => void) => {
const iv = setInterval(() => {
secs -= 1
if (secs > 0) {
emitter(secs)
} else {
emitter(END)
clearInterval(iv)
}
}, 1000);
return () => {
clearInterval(iv)
}
};
const c1: Channel<number> = eventChannel<number>(subscribe);
// typings:expect-error
const c2: Channel<number> = eventChannel<number>(subscribe,
buffers.none<string>());
const c3: Channel<number> = eventChannel<number>(subscribe,
buffers.none<number>());
// typings:expect-error
const c4: Channel<number> = eventChannel<number>(subscribe,
buffers.none<number>(), (input: string) => true);
const c5: Channel<number> = eventChannel<number>(subscribe,
buffers.none<number>(), (input: number) => true);
}
示例2: testBuffers
function testBuffers() {
const b1: Buffer<{foo: string}> = buffers.none<{foo: string}>();
const b2: Buffer<{foo: string}> = buffers.dropping<{foo: string}>();
const b3: Buffer<{foo: string}> = buffers.dropping<{foo: string}>(42);
const b4: Buffer<{foo: string}> = buffers.expanding<{foo: string}>();
const b5: Buffer<{foo: string}> = buffers.expanding<{foo: string}>(42);
const b6: Buffer<{foo: string}> = buffers.fixed<{foo: string}>();
const b7: Buffer<{foo: string}> = buffers.fixed<{foo: string}>(42);
const b8: Buffer<{foo: string}> = buffers.sliding<{foo: string}>();
const b9: Buffer<{foo: string}> = buffers.sliding<{foo: string}>(42);
const buffer = buffers.none<{foo: string}>();
// typings:expect-error
buffer.put({bar: 'bar'});
buffer.put({foo: 'foo'});
const isEmpty: boolean = buffer.isEmpty();
const item = buffer.take();
// typings:expect-error
item.foo; // item may be undefined
const foo: string = item!.foo;
if (buffer.flush)
buffer.flush();
}
示例3: testActionChannel
function* testActionChannel(): SagaIterator {
// typings:expect-error
yield actionChannel();
/* action type */
yield actionChannel('my-action');
yield actionChannel('my-action', actionBuffer);
// typings:expect-error
yield actionChannel('my-action', nonActionBuffer);
/* action predicate */
yield actionChannel(
(action: Action) => action.type === 'my-action',
);
yield actionChannel(
(action: Action) => action.type === 'my-action',
actionBuffer,
);
// typings:expect-error
yield actionChannel(
(action: Action) => action.type === 'my-action',
nonActionBuffer,
);
// typings:expect-error
yield actionChannel(
(item: {someField: string}) => item.someField === '--',
actionBuffer
);
// typings:expect-error
yield actionChannel(() => {});
// typings:expect-error
yield actionChannel(() => {}, actionBuffer);
/* stringable action creator */
yield actionChannel(stringableActionCreator);
yield actionChannel(stringableActionCreator, buffers.fixed<MyAction>());
// typings:expect-error
yield actionChannel(stringableActionCreator, nonActionBuffer);
/* array */
yield actionChannel([
'my-action',
(action: Action) => action.type === 'my-action',
stringableActionCreator,
]);
// typings:expect-error
yield actionChannel([() => {}]);
}
示例4: testEventChannel
function testEventChannel(secs: number) {
const subscribe = (emitter: (input: number | END) => void) => {
const iv = setInterval(() => {
secs -= 1
if (secs > 0) {
emitter(secs)
} else {
emitter(END)
clearInterval(iv)
}
}, 1000);
return () => {
clearInterval(iv)
}
};
const c1: EventChannel<number> = eventChannel<number>(subscribe);
// typings:expect-error
const c2: EventChannel<number> = eventChannel<number>(subscribe,
buffers.none<string>());
const c3: EventChannel<number> = eventChannel<number>(subscribe,
buffers.none<number>());
// typings:expect-error
c1.take();
// typings:expect-error
c1.take((message: string | END) => {});
c1.take((message: number | END) => {});
// typings:expect-error
c1.put(1);
// typings:expect-error
c1.flush();
// typings:expect-error
c1.flush((messages: string[] | END) => {});
c1.flush((messages: number[] | END) => {});
c1.close();
}
示例5: eventChannel
export const createScrollChannel = () => eventChannel(emit => {
const scrollHandler = (event: any) => {
emit(getScrollInfo(window))
}
const unsubscribe = () => {
window.removeEventListener('scroll', scrollHandler)
}
window.addEventListener('scroll', scrollHandler)
return unsubscribe
}, buffers.sliding(1))
示例6: testChannel
function testChannel() {
const c1: Channel<{foo: string}> = channel<{foo: string}>();
const c2: Channel<{foo: string}> = channel(buffers.none<{foo: string}>());
// typings:expect-error
c1.take((message: {bar: number} | END) => {});
c1.take((message: {foo: string} | END) => {});
if (c1.put) {
// typings:expect-error
c1.put({bar: 1});
c1.put({foo: 'foo'});
c1.put(END);
}
c1.flush();
c1.close();
}
示例7: refreshChan
function refreshChan(intervalMs: number) {
return eventChannel(publish => {
const id = setInterval(() => publish(true), intervalMs);
return () => clearInterval(id);
}, buffers.none());
}