问题标签 [co]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - Koa中的动态路线?
假设我有一组如下所示的路线:
对他们来说最好的方法是app.use
什么?我试过这样做(koa-route
作为我的中间件)是这样的:
但这似乎不起作用(我也尝试过 plain routes.forEach
)。我究竟做错了什么?
javascript - 将 mocha+chai 与 co 一起使用
当chai.expect
断言失败时,它们通常会导致测试失败,并且否定结果会被添加到测试运行器的报告中(在这种情况下mocha
)。
但是,当我使用使用 包装的生成器函数时co.wrap()
,如下所示,会发生一些奇怪的事情:当断言通过时,一切都运行得很好。但是,当断言失败时,测试会超时。
如何与+co
一起使用?mocha
chai
解决方案:
正如下面@Bergi 所指出的,问题是由于co.wrap()
吞下 引发的异常而出现的expect()
,不允许它冒泡到需要找到它的位置。mocha
解决方案是使用co()
而不是co.wrap()
,并添加.catch()
并传递done
回调,如下所示。
javascript - co.wrap yield Promise throw TypeError: undefined is not a function
我在 co.wrap 中定义了一个 Promises,但它抛出TypeError: undefined is not a function(错误行是yield pm2.connect();)
应用程序.js:
在 pm2.js 中,我包装了一个函数来返回一个 Promise,代码如下:
然后我尝试
在 app.js 中,它工作正常。
javascript - 拒绝承诺未定义
我尝试了下面的函数使用co
和 javascript promise 测试,fulfill
将成功返回但reject
没有返回,并捕获未定义的错误。并且流程无法继续。为什么?
错误:
代码:
node.js - nodejs child_process.spawnSync 或 child_process.spawn 包裹在 yieldable 生成器中,它返回输出
有一段时间以来,我一直在尝试做一些到目前为止对我来说并不奏效的事情。
使用 nodejs,我喜欢运行交互式 sh-command 并在命令退出后使用 sh-command 输出。我喜欢编写一个可生成的生成器函数,它包装交互式 shell 命令的运行并返回 shell 命令的输出。
方法一:shelljs
- shelljs
- 我在 shelljs 上取得了一些成功,但在某些时候它不会运行得更远。
- 问题1:是否有可能让shelljs达到我可以继承stdio并使shelljs函数可屈服的程度?
方法 2:child_process.spawnSync
- child_process.spawnSync
- 最后我发现了 child_process.spawnSync 并且很高兴,至少我可以运行交互式 sh 命令而不会出现问题
options: { stdio: 'inherit' }
- 但我还没有找到如何取回 child_process.spawnSync 的输出。
- 问题 2:如何将 spawnSync 包装到返回 child_process 输出的生成器函数中?
方法3:协同子进程
- 我也试过co-child-process。
- 它似乎可以运行,但不能与 stdio 交互。关于这个有一个问题,我不太明白。
- 问题 3:有人可以解释我/发布一个示例 co-child-process 将如何与 stdio 继承一起工作。
方法 4:promisify child_process.spawn() 与 bluebird
- 如果 child_process.spawn() 是可承诺的,我在 bluebird 上打开了一个问题
所以我的问题。有人可以向我发布一个如何运行交互式 shell 命令的示例,该命令可以包装在一个可生成的生成器函数中,该生成器函数返回 shell 命令的输出?我对新方法持开放态度。
我创建了一个 npm 模块,它可以在github上找到,你可以在其中 fork 并做出贡献。
提前谢谢。
javascript - 从生成器函数中退出最终承诺范围
我在尝试将承诺结果作为收益返回给原始调用者时遇到了麻烦。
store.js
storeGateway.js
数据库.js
我在上面看到的每个 console.log 上都打印了数据。我只是不知道如何从 storeGateway 的 find() 方法返回存储,因为它在承诺结果中(在 .then() 中)接收存储数组,我需要能够将其返回上游。
(请参阅我在代码中的评论,我正在尝试从我的 store.js 的 find 生成器函数返回 promise 中找到的商店,然后返回上游)。
javascript - Co 和 co.wrap 在 Node.js 中的行为不同
虽然我有点弄清楚 Koa 流程机制是如何工作的(我认为),但我似乎无法掌握 co 和 co.wrap 之间的所有差异。这是给出意外行为的代码:
此代码的输出如下:
你可以看到我包装了 co.wrap 的使用,以便它在简单的 co 使用之后。现在很明显typeGen
在第二次尝试中没有被调用,但为什么会这样呢?这两个结果不应该是相同的吗?
node.js - Socket.io + co:这就是它应该使用的方式吗?
我正在尝试让http://socket.io/与co 合作。
我正在尝试在我的代码中异步执行一些任务。
这就是 socket.io 的工作原理。我现在想加入co
这个组合。我尝试了以下方法:
得到这个错误:SyntaxError: Unexpected strict mode reserved word
和这个:
我的问题是,这是应该如何使用它,还是我错过了什么。似乎有很多额外的代码来包装所有东西?
node.js - 猫鼬不解决查询
我很难理解以下查询有什么问题。我正在使用 mongoose 4.1.10 和 mongodb 3.0.6。
更具体地说,User.findOne({ "local.email": username });
永远不会解决。
我什至尝试使用回调方法,但我再次没有得到任何结果。
python-2.7 - 如何使用注册表设置键盘键
我正在寻找一种方法来编写使用注册表重新映射特定键盘键的脚本(希望在 python 中)。例如:只在回车键和空格键之间切换。
另外我想知道是否可以设置空格键的值。
例如:让空格键写上“空格”这个词。
谢谢 (: