Articles of co

包含在可返回的生成器中的nodejs child_process.spawnSync或child_process.spawn返回输出

因为有一段时间我正在努力达到目前为止还没有解决的问题。 使用nodejs,我喜欢在命令退出后运行交互式sh命令并使用sh命令输出。 我喜欢编写一个可收缩的generator函数来封装交互式shell命令的运行并返回shell命令的输出。 方法1:shelljs shelljs 我用shelljs取得了一些成功,但是在某些时候它不会跑得更远。 问题1:是否有可能获得shelljs到我可以inheritancestdio并使shelljs函数可屈服的点? 方法2:child_process.spawnSync child_process.spawnSync 最后我发现了child_process.spawnSync并很高兴,至less我可以运行交互式sh命令而不会出现任何问题options: { stdio: 'inherit' } 但我还没有find如何取回child_process.spawnSync的输出。 问题2:如何将spawnSync封装到返回child_process输出的生成器函数中? 方法3:共同子女过程 我也试过共同子女的过程 。 它似乎运行,但不与stdio互动。 有这个问题 ,我真的不明白。 问题3:有人可以解释我/发表一个例子如何共同subprocess将与stdioinheritance工作。 方法4:用蓝鸟promisify child_process.spawn() 我打开蓝鸟的问题 ,如果child_process.spawn()是promisifiable 所以我的问题。 有人可以给我一个例子,说明如何运行一个交互式shell命令,该命令可以封装在一个返回shell命令输出的可生成生成器函数中? 我很乐意接受新的方法。 我创build了一个在github上可用的npm模块,你可以将它分叉并贡献。 thx提前。

通过yield&co。获得承诺的价值

我试图找出如何通过yield来获得承诺的价值,可能与“合作”: function *(){ var someVar = yield functionThatReturnsAPromise(); } 被调用的函数不是一个生成器,只是一个正常的函数。 有了上面的一些someVar == Promise ,但我想要解决的价值。 公司或其他图书馆是否有办法做到这一点?

如何用和谐旗启动全局npm模块

我写了一个可以安装在全局dm-npm的npm模块。 我喜欢在该模块中使用co。 我怎样才能告诉模块,它启动全球时,与和谐标志运行? 这里是package.json: { "name": "dm-npm", "version": "0.0.3", "description": "npm helper", "main": "index.js", "scripts": { "test": "mocha –reporter nyan", "start": "node –harmony ./bin/dm-npm" }, "repository": { "type": "git", "url": "https://github.com/divramod/dm-npm.git" }, "keywords": [ "npm", "template" ], "author": "", "license": "ISC", "bugs": { "url": "https://github.com/divramod/dm-npm/issues" }, "homepage": "https://github.com/divramod/dm-npm", "devDependencies": { "chai": "^2.1.0", "mocha": "^2.1.0" }, […]

如何pipe理对共同请求模块和NodeJs中的文件的响应?

我使用Co-Request从http url中读取Zip文件,并且我有下面的代码从服务器读取.. 该代码已经工作。 但是我不知道如何写一个文件的响应Zip。 var co = require( "co" ); var request = require( "co-request" ); var options = { url: "http://www.example.com/sample.zip", headers: { 'Token': Appconfig.Affiliate_Token, 'Affiliate-Id' : Appconfig.Affiliate_Id } } console.log( "Downloading : zip file" ); var j = yield request( options ); 共同请求实际上是对Request的包装,我发现下面的代码将文件传输到stream中。 但不知道如何使用共同请求和yield来编写相同的代码。 request.get('http://example.com/img.png').pipe(request.put('http://example.com/img.png')) 请帮助如何使用良率和共同请求将响应zip写入文件