本文整理匯總了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());
}