本文整理汇总了TypeScript中@jonggrang/task.forInPar函数的典型用法代码示例。如果您正苦于以下问题:TypeScript forInPar函数的具体用法?TypeScript forInPar怎么用?TypeScript forInPar使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了forInPar函数的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: it
it('storage.destroyAllOfAuthId should only delete relevant Auth Id', function* () {
const master: Session = yield generateSession(HasAuthId.HAS_AUTH_ID);
const authId = master.authId as string;
const preslaves: Session[] = yield (replicateA(20, generateSession(HasAuthId.HAS_AUTH_ID))
.concat(replicateA(20, generateSession(HasAuthId.NO_AUTH_ID)))
);
const slaves = preslaves.map(x => createSession(x.id, authId, x.data, x.createdAt, x.accessedAt));
const others: Session[] = yield (replicateA(20, generateSession(HasAuthId.HAS_AUTH_ID))
.concat(replicateA(20, generateSession(HasAuthId.NO_AUTH_ID)))
);
const allS = [master].concat(slaves, others);
// insert session
yield T.forInPar_([master].concat(preslaves, others), x => run(storage.insert(x)));
yield T.forInPar_(slaves, x => run(storage.replace(x)));
const xs: (Session | null)[] = yield T.forInPar(allS, x => run(storage.get(x.id)));
assert.deepEqual(xs, allS);
yield run(storage.destroyAllOfAuthId(authId));
const ys: (Session | null)[] = yield T.forInPar(allS, x => run(storage.get(x.id)));
const xxs = new Array(slaves.length + 1).fill(null);
assert.deepEqual(ys, xxs.concat(others as any));
return T.pure(true);
});
示例2: update
function update(
state: AppState<M, Q, S>,
action: AppAction<M, Q, S, I>
): T.Task<AppState<M, Q, S>> {
let next: Transition<M, S, I>,
needsRender: boolean,
nextState: AppState<M, Q, S>,
appChange: AppChange<S, I>;
switch (action.tag) {
case AppActionType.INTERPRET:
return state.interpret.loop(action.payload)
.chain(ni => {
return T.pure(S.assign({}, state, {
interpret: ni
}));
});
case AppActionType.ACTION:
next = app.update(state.model, action.payload);
needsRender = state.needsRender || state.model !== next.model;
nextState = S.assign({}, state, {
needsRender,
model: next.model
});
appChange = { old: state.model, action: action.payload, model: nextState.model };
return onChange(appChange).then(T.forInPar(next.effects, pushEffect)).map(() => nextState);
case AppActionType.RESTORE:
needsRender = state.needsRender || state.model !== action.payload;
nextState = S.assign({}, state, { needsRender, model: action.payload });
return T.pure(nextState);
}
}
示例3: newRef
return newRef(int).chain(ref => {
return T.forInPar(subs, q => {
return readRef(ref)
.chain(k => k.loop(E.right(q)))
.chain(nq => writeRef(ref, nq));
}).then(readRef(ref));
});
示例4:
).chain(it2 => {
return T.forInPar(app.init.effects, pushEffect)
.chain(() => {
let st: AppState<M, Q, S> = { snabbdom
, interpret: it2
, needsRender: false
, model: app.init.model };
return T.pure({ update, commit, init: st});
});
})
示例5:
export function witherPar<A, B>(xs: A[], fn: (_: A, i: number) => T.Task<P.Maybe<B>>): T.Task<B[]> {
return T.forInPar(xs, fn).map(P.catMaybes);
}
示例6: newQSem
: newQSem(n).chain(qsem => T.forInPar(xs, (x, i) => withQSem(qsem, f(x, i))));
示例7: cb
.chain(sbs => T.forInPar(S.recordValues(sbs.cbs), cb => cb(ac)))