我使用Redux并且遇到RxJ问题。
让我们说一个动作在2秒内被解雇3次(类型:' OPEN')。 Action正在向Redux状态发送一些数据。第一次和第三次射击都带来了相同的数据,但第二次没有。在带来一些影响之前,所有这些都有延迟。
我希望Observable注意到,动作1和动作3具有相同的数据并改变输出的顺序。从1,2,3 => 2,3。由于行动nr 3,应删除第一个。
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <signal.h>
#define CHECK(syscall, msg) do { \
if ((syscall) == -1) { \
perror(msg); \
} \
} while(0)
void catch(int signo, siginfo_t *info, void *context) {
if (signo == SIGCHLD) {
printf("SIGCHLD caught\n");
}
}
int main () {
sigset_t new_set;
sigemptyset(&new_set);
sigaddset(&new_set, SIGCHLD);
struct sigaction act;
act.sa_sigaction = catch;
act.sa_mask = new_set;
act.sa_flags = SA_SIGINFO | SA_RESTART;
CHECK(sigaction(SIGCHLD, &act, NULL), "sigaction error");
int pid, i;
for (i = 0; i < 10; i++) {
pid = fork();
if (!pid) return;
}
while (1);
}
问题:如何比较Observable中的活动流?
答案 0 :(得分:0)
在redux-observable中不可能阻止/删除调度的操作或修改它们的顺序,因为当它们到达你的史诗时,它们已经通过你的reducer和任何其他中间件运行。这是为了使史诗本身成为唯一不会发生不确定性的地方;这也意味着您可以确定在您的史诗中收到redux商店的状态时已经更新了。
如果您可以对用例进行详细说明,我可以推荐其他方法。