草庐IT

generator

全部标签

javascript - 如何声明异步生成器函数

我正在尝试在Node.js中创建异步生成器函数,但这似乎是不可能的。我的Node.js版本:7.6.0。我的代码:asyncfunction*async_generator(){for(leti=0;i我遇到的错误:谁知道问题出在哪里?为什么我不能创建异步生成器函数,而我可以独立创建生成器函数或异步函数? 最佳答案 它在那里并且确实有效,但目前它在和谐旗帜后面。例子.jsasyncfunction*async_generator(){for(leti=0;isetTimeout(_=>r("helloworld"),100))};}

javascript - 是否可以将 promise 包装在生成器中?

我正在尝试使用生成器创建一个promise-wrapper,以便我可以:varasyncResult=PromiseWrapper($.ajax(...));到目前为止,我一直在尝试:functionPromiseWrapper(promise){returnfunction*wrapper(promise){promise.then(function(result){yieldresult;},function(err){throwerr;});}(promise).next().value}但这失败了,因为不允许在法线内屈服。有什么解决方法吗?谢谢:Dps:我正在使用babel将代

javascript - Yeoman.io 在安装 generator-angular 时出现问题

写问题时使用了谷歌翻译器。在新安装的ubuntu14.04上设置nodejs-sudoadd-apt-repositoryppa:chris-lea/node.jssudoapt-getupdatesudoapt-getinstallpython-software-propertiespythong++makenodejs然后安装哟-sudonpmi-gyo然后我安装generator-angular-sudonpmi-ggenerator-angular从您打开终端的目录并安装generator-angular-yoangular并得到很多错误。为什么?如何解决?SergioLope

javascript - TypeScript:异步生成器

我想要一个这样的函数:exportasyncfunction*iterateDir(dir:string){letlist=awaitfs.readdir(dir);//fs-promiseimplementationofreaddirfor(letfileoflist){yieldfile;}}我会这样使用:for(letfileiniterateDir(dir)){processFile(file);}这行不通,因为一个函数不能既是异步函数又是生成器。我将如何构建代码来实现相同的目的?如果我将awaitfs.readdir更改为回调,我假设外部for..of循环不会等待。如果我去掉

javascript - 我可以将参数传递给 ES6 生成器函数吗

这是一个ES6生成器:function*Gen(){varinput1=yield'output1'}vargen=Gen()gen.next('input1').value//return'output1'gen第一次调用,返回output1但变量input1不等于传入的'input1',的值code>input实际上是'input2',第二次调用next('input2')我的问题是如何访问下一次第一次调用的input1,比如:function*Gen(){varinput1=param1varinput2=yield'output1'} 最佳答案

javascript - 在 JavaScript 中从生成器创建数组

我想用JavaScript中的生成器的值创建一个数组。生成器像这样创建一个动态长度的序列function*sequenceGenerator(minVal,maxVal){letcurrVal=minVal;while(currVal我想将这些值存储在一个数组中,但是在生成器完成之前使用next()似乎不是最好的方法(老实说看起来很丑)。varit,curr,arr;it=sequenceGenerator(100,1000);curr=it.next();arr=[];while(!curr.done){arr.push(curr.value);}我能否以某种方式直接从生成器中/在生

javascript - 递归生成器函数中 yield 后的 *(星号/星号)语法是什么意思?

这个问题在这里已经有了答案:Delegatedyield(yieldstar,yield*)ingeneratorfunctions(3个答案)关闭6年前。假设我创建了一个ES6生成器function*createFibonacciIterator(a=0,b=1){yieldb;yield*createFib(b,b+a);//然后我使用该生成器获得前20个结果letfibber=createFibonacciIterator();for(letii=0;ii如果我将*留在yield*createFib(b,b+a);行中,事情就会中断,这是有道理的,因为我不想要yield一个迭代器

javascript - Google Canary 浏览器是否支持 ES6 的生成器?

我需要测试/工作属于ES6草案的生成器。要继续工作,我需要一个浏览器(在我的例子中)。由于GoogleCanary严格针对开发人员,所以它现在是否支持生成器?我的操作系统是Windows7。 最佳答案 是的,在旗帜后面。另见featuredashboardentry和V8bug.导航到chrome://flags/#enable-javascript-harmony以启用它。 关于javascript-GoogleCanary浏览器是否支持ES6的生成器?,我们在StackOverflo

javascript - 与 bluebird 和 co 一起快速生成生成器功能

我正在尝试Node0.12中的一些和谐功能,特别是尝试新的生成器功能。我正在使用co(v4)、bluebird和express(v4)执行此操作,如下所示://...varfs=bluebird.promisifyAll(require('fs'));//...app.post('/test',co.wrap(function*(req,res,next){varcontents=yieldfs.readFileAsync('/etc/hosts','utf8');returnres.send(contents);}));//...根据其文档,co.wrap返回一个普通函数,该函数返回

javascript - 使用 fs 模块了解 Node JS 生成器

一段时间以来,我一直对NodeJS感到非常兴奋。我最终决定埋头苦干,编写一个测试项目来了解最新Harmony版本的Node中的生成器。这是我非常简单的测试项目:https://github.com/kirkouimet/project-node要运行我的测试项目,您可以轻松地从Github中提取文件,然后运行它:node--harmonyApp.js这是我的问题-我似乎无法让Node的异步fs.readdir方法与生成器内联运行。其他项目,例如Galaxy和suspend似乎可以做到。这是我需要修复的代码块。我希望能够实例化一个FileSystem类型的对象并对其调用.list()方法