繁体   English   中英

Bacon.js随机流

[英]Random numbers stream with Bacon.js

我试图潜入反应式编程。 因此,我决定使用Bacon javascript库使用RSA加密创建简单的聊天记录。

我有以下问题:用培根创建随机数流的最佳方法是什么? 之后,我想将随机数流过滤为随机素数流。 做这个的最好方式是什么?

我不确定培根流是否适合用于此目的,但是您可以按照以下方法进行操作。

function makeRandomNumber() {
  return Math.random();
}

function makeRandomStream() {
  return Bacon.fromBinder(function(sink) {
    while(sink(makeRandomNumber()) === Bacon.more) {}
    return function() {};
  });
}

// example of using the random stream
makeRandomStream().filter(function(x) {
  return x > 0.5;
}).take(5).onValue(function(x) {
  console.log('random number', x);
});

注意,makeRandomStream()每次都会返回一个新的Bacon流。 您很可能不想将多个订户附加到同一随机数流,否则您将在多个地方重复使用相同的随机数。 另外,请确保您始终同步取消订阅随机数流; 不要尝试先将其与另一个流合并,否则随机数流会生成剩余的随机数,从而阻止其余代码运行。

而且,您将希望使用window.crypto.getRandomValues而不是Math.random进行加密。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM