EroticDungeonGame/node_modules/rxjs/dist/esm/internal/operators/withLatestFrom.js
3944Realms 8c4ce2709c fix(兼容emotescraft和rideeverything): 修改骑乘逻辑和tick取消EmtoesCraft表情
使用Mixin中检测绕过骑乘取消和开始骑乘逻辑,避免原版的unRide方法导致非预期的退出设备;在每tick检测,如果在设备上则停止表情动画
2026-02-20 14:45:57 +08:00

31 lines
1.2 KiB
JavaScript

import { operate } from '../util/lift';
import { createOperatorSubscriber } from './OperatorSubscriber';
import { innerFrom } from '../observable/innerFrom';
import { identity } from '../util/identity';
import { noop } from '../util/noop';
import { popResultSelector } from '../util/args';
export function withLatestFrom(...inputs) {
const project = popResultSelector(inputs);
return operate((source, subscriber) => {
const len = inputs.length;
const otherValues = new Array(len);
let hasValue = inputs.map(() => false);
let ready = false;
for (let i = 0; i < len; i++) {
innerFrom(inputs[i]).subscribe(createOperatorSubscriber(subscriber, (value) => {
otherValues[i] = value;
if (!ready && !hasValue[i]) {
hasValue[i] = true;
(ready = hasValue.every(identity)) && (hasValue = null);
}
}, noop));
}
source.subscribe(createOperatorSubscriber(subscriber, (value) => {
if (ready) {
const values = [value, ...otherValues];
subscriber.next(project ? project(...values) : values);
}
}));
});
}
//# sourceMappingURL=withLatestFrom.js.map