草庐IT

generator

全部标签

javascript - 链接异步方法调用 - javascript

您有一个带有两个异步方法调用的原型(prototype)对象Foo,bar和baz。varbob=newFoo()Foo.prototype.bar=functionland(callback){setTimeout(function(){callback()console.log('bar');},3000);};Foo.prototype.baz=functionland(callback){setTimeout(function(){callback()console.log('baz');},3000);};我们想要执行bob.bar().baz()并让它按顺序记录“bar”和

javascript - 如何对 ES6 生成器进行特征检测?

我真的很喜欢ES6生成器。有什么方法可以检测浏览器中的生成器支持吗?我知道生成器目前可能不会出现在很多浏览器中(或者可能根本没有浏览器),但这对我来说没问题。我试过:try{function*(){}}catch(err){console.log("Nogenerators");}但是好像不行。如何检测浏览器对ES6生成器的支持? 最佳答案 eval实际上是正确解决方案的少数情况之一。对于语言结构的改变,你需要这样的东西:try{eval("(function*(){})");}catch(err){console.log(err)

javascript - 流: Dynamically generate string union types?

假设我有一个流类型Suit,我想将它组合成另一种名为Card的类型。//types.jstypeSuit=|"Diamonds"|"Clubs"|"Hearts"|"Spades";typeCard={...suit:Suit,...}与其直接在suit.js中对Suit字符串进行硬编码,不如根据JavaScript原语(数组)动态生成Suit类型?说...//constants.jsconstSUITS=['Diamonds','Clubs','Hearts','Spades'];通过这种方式,西装只需定义一次,并且可以在JavaScript结构中定义,该结构将在应用程序的其他部分中

javascript - 如何克隆 ES6 生成器?

我正在尝试使用生成器在ES6中创建一个Listmonad。为了让它工作,我需要创建一个已经消耗了多个状态的迭代器的副本。如何在ES6中克隆迭代器?function*test(){yield1;yield2;yield3;}varx=test();console.log(x.next().value);//1vary=clone(x);console.log(x.next().value);//2console.log(y.next().value);//2(sic)我已经尝试了lodash的clone和cloneDeep,但它们没有用。以这种方式返回的迭代器是native函数并在内部保

Medical Diffusion - Denoising Diffusion Probabilistic Models for 3D Medical Image Generation

MedicalDiffusion-DenoisingDiffusionProbabilisticModelsfor3DMedicalImageGeneration论文链接:https://arxiv.org/abs/2211.03364摘要计算机视觉的最新进展已经在图像生成方面显示出有希望的结果。扩散概率模型尤其从文本输入中生成了真实的图像,如DALL-E2、Imagen和StableDiffusion所示。然而,它们在医学中的应用尚未得到系统评估,因为医学中的图像数据通常包括三维体积。合成图像可能在保护隐私的人工智能中起着至关重要的作用,也可以用于增强小数据集。这里我们展示了扩散概率模型可以

javascript - 生成器的异常处理

最近NodeJS开始使用生成器,我可以做类似的事情:Promise.coroutine(function*(query){varhandle=yielddb.connect(Settings.connectionString);//async,returnspromisevarresult=yielddb.query(query);//async,returnspromisereturnresult;});现在生成器很棒,因为它们让我可以在JS中执行异步/等待。我真的很喜欢能够做到这一点。但是,出现了一个问题。生成器使用try/catchblock,假设我有如下代码:Promise.c

javascript - 如何删除/删除 Yeoman Angular 中生成的脚手架路由

我知道我可以删除代码和文件;但是,有没有办法删除generatedyeoman中的路线-类似自动命令中的Angular?例如yoangular:routemyroute是你生成它的方式要删除、回滚或删除此路由脚手架,我将运行的cmd行代码是什么? 最佳答案 我认为没有执行此操作的命令。我阅读了有关生成器和子生成器的文档(http://yeoman.io/generators.html#writing-your-first-generator),但找不到有关删除进程的任何信息。我还阅读了有关生成器API(http://yeoman.g

javascript - JS 生成器 : How is `return yield` different from `yield` ?

function*foo(){yield123};//---function*foo(){returnyield123};我似乎无法证明两者之间的区别。有明显的区别吗?应该在生成器中使用return吗? 最佳答案 首先,我首先要说明生成器是一个有点复杂的主题,因此无法在此处给出完整的概述。有关更多信息,我强烈推荐KyleSimpson的YouDon'tKnowJS系列。第5本书(异步和性能)对生成器的来龙去脉进行了精彩的讨论。尽管如此,请看您给出的具体示例!首先,您在示例中编写的代码将显示无差异,但仅当正确运行时。这是一个例子:fu

javascript - 有什么方法可以导出生成器函数?

一个例子generator.js:exports.read=function*(){vara=yieldread('co.github.js');varb=yieldread('co.recevier.js');varc=yieldread('co.yield.js');console.log([a,b,c]);}functionread(file){returnfunction(fn){fs.readFile(file,'utf8',fn);}}co.js:varco=require('co');varfs=require('fs');vargen=require('./genera

php - 是否有使用生成器充当迭代器的接口(interface)?

我想创建一个目录类,我希望它作为一个迭代器(foreach-able)。但我希望它是基于生成器的(例如一个执行“yield”的函数)。可能吗? 最佳答案 没有为类显式实现生成器的接口(interface),但您可以在此处使用IteratorAggregate。请参阅此从GeneratorsRFC实现IteratorAggregate的示例classTestimplementsIteratorAggregate{protected$data;publicfunction__construct(array$data){$this->da