Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.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生成器与sloth.js一起使用?_Javascript - Fatal编程技术网

如何将javascript生成器与sloth.js一起使用?

如何将javascript生成器与sloth.js一起使用?,javascript,Javascript,这个问题需要了解javascriptsloth库,该库位于以下位置: 如果我有这个javascript生成器 function fibonacci(){ var fn1 = 1; var fn2 = 1; while (1){ var current = fn2; fn2 = fn1; fn1 = fn1 + current; yield current; } } 通过sloth库,我可以将其转换为适合sloth库使用的迭代器 var iter

这个问题需要了解javascriptsloth库,该库位于以下位置:

如果我有这个javascript生成器

function fibonacci(){
  var fn1 = 1;
  var fn2 = 1;

  while (1){
    var current = fn2;
    fn2 = fn1;
    fn1 = fn1 + current;
    yield current;
  }
}
通过sloth库,我可以将其转换为适合sloth库使用的迭代器

var iter = sloth.iterNextable(fibonacci());
上面URL中的sloth文档显示了使用take()函数从sloth友好迭代器中获取n个元素的示例:

sloth.ify([1, 2, 3]).take(2).force();
[ 1, 2 ]

问题是:如何从fibonacci()生成器获取一个我可以调用take()的慢速对象?

解决了这个问题。我发布这个问题的原因是

sloth.ify(iter).take(5)
返回

[object Object]  
所以我认为我做错了什么。此对象是一个需要评估的惰性对象。这就是force()的作用:

sloth.ify(iter).take(5).force()
返回

1,1,2,3,5