Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.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生成器_Javascript_Ecmascript 6_Generator - Fatal编程技术网

模块/包中的Javascript生成器

模块/包中的Javascript生成器,javascript,ecmascript-6,generator,Javascript,Ecmascript 6,Generator,我遇到了发电机的问题,希望你们能帮我解决 因此,基本上我在单独的模块(包)中分离/编写了我的函数,以便更容易更新我的应用程序 在下图中,您可以很好地了解我正在尝试做什么。由于某种原因,当我一直使用.next()调用函数时,只运行第一个yield 如何运行其他生成器?在您的代码中,this.sensorGenerator().next()每次都创建一个新的生成器,然后在其中调用下一个函数,每次都返回相同的第一个值 您需要创建/实例化生成器并将其存储在某个变量中,然后调用其下一个函数 var ge

我遇到了发电机的问题,希望你们能帮我解决

因此,基本上我在单独的模块(包)中分离/编写了我的函数,以便更容易更新我的应用程序

在下图中,您可以很好地了解我正在尝试做什么。由于某种原因,当我一直使用
.next()
调用函数时,只运行第一个yield


如何运行其他生成器?

在您的代码中,
this.sensorGenerator().next()
每次都创建一个新的生成器,然后在其中调用下一个函数,每次都返回相同的第一个值

您需要创建/实例化生成器并将其存储在某个变量中,然后调用其下一个函数

var gen=this.sensorGenerator();
下一代();//第一值
下一代();//第二值
...

下面是一个工作片段,展示了如何做

const div=document.getElementById(“osef”);
常量对象={
_生成器:未定义,
init:function(){
此.u生成器=此.sensorGenerator();
返回这个.getNextGenValue();
},
传感器生成器:功能*(){
产量1;
产量2;
产量3;
产量4;
返回5;
},
getNextGenValue:函数(){
const v=这个。_generator.next();
log(“getNextGenValue”,v);
div.innerHTML=“生成值:”+v.value;
返回v;
},
};
obj.init();
const btn=document.getElementById(“btn”);
btn.addEventListener(“单击”,x=>obj.getNextGenValue())
下一个生成器值

还没有任何内容
您可以将代码作为代码片段而不是图像发布吗?:)谢谢。从评论:请同时阅读此:和。@AlenGenzić我试过了,但它总是抱怨我发布的代码格式不正确。这就是为什么我贴了一张图片。情况正是如此。我可以调用
sensorGenerator().next()
它只运行第一行。你为什么在这里使用生成器?@Bergi在运行下一行之前,我正在尝试完成几个函数。我用async和Promissions进行了尝试,但是,我注意到我的一些func当时还没有准备好。我已经像这样尝试了好几次,没有luckThanks@ESN!你是个传奇人物!使用此示例进行操作:)很高兴我提供了帮助:)