Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Bacon.js中的随机数流_Javascript_Random_Bacon.js - Fatal编程技术网

Javascript Bacon.js中的随机数流

Javascript Bacon.js中的随机数流,javascript,random,bacon.js,Javascript,Random,Bacon.js,我正试图潜入反应式编程。所以我决定使用Bacon javascript库创建一个简单的RSA加密聊天 我的问题是: 用培根创建随机数流的最佳方法是什么? 之后,我想过滤随机数流到随机素数流。最好的方法是什么?我不确定Bacon streams是否适用于此,但以下是您可以使用的方法 function makeRandomNumber() { return Math.random(); } function makeRandomStream() { return Bacon.fromBin

我正试图潜入反应式编程。所以我决定使用Bacon javascript库创建一个简单的RSA加密聊天

我的问题是: 用培根创建随机数流的最佳方法是什么?
之后,我想过滤随机数流到随机素数流。最好的方法是什么?

我不确定Bacon streams是否适用于此,但以下是您可以使用的方法

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
来进行加密使用。

如果我尝试将这个流与其他流映射得到的一些流结合起来会怎么样?gyzerok:如果你有一个具体的例子,也许是JSFIDLE,那么会更容易得到帮助。我很难找到这个流的具体用例。在这里,我使用这个流为我的rsa聊天应用程序生成e、d和m值。感谢您的帮助。在我正确阅读您的应用程序时,您使用了大量Bacon流来创建一个具有e、d和m的对象。这意味着您可以正常地计算这些值,并将结果放入
Bacon.constant
-无需FRP。虽然我猜您只是将此用作练习,所以您的实现看起来很好。唯一的风格区别是,我将把你的组合函数和过滤函数提取到命名良好的函数中,以便对数据流有一个更清晰的概述。是的,我这样做是为了练习。感谢您的建议和代码审查。