问题标签 [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.

0 投票
1 回答
1686 浏览

node.js - Koa中的动态路线?

假设我有一组如下所示的路线:

对他们来说最好的方法是app.use什么?我试过这样做(koa-route作为我的中间件)是这样的:

但这似乎不起作用(我也尝试过 plain routes.forEach)。我究竟做错了什么?

0 投票
2 回答
1165 浏览

javascript - 将 mocha+chai 与 co 一起使用

chai.expect断言失败时,它们通常会导致测试失败,并且否定结果会被添加到测试运行器的报告中(在这种情况下mocha)。

但是,当我使用使用 包装的生成器函数时co.wrap(),如下所示,会发生一些奇怪的事情:当断言通过时,一切都运行得很好。但是,当断言失败时,测试会超时。

如何与+co一起使用?mochachai



解决方案:

正如下面@Bergi 所指出的,问题是由于co.wrap()吞下 引发的异常而出现的expect(),不允许它冒泡到需要找到它的位置。mocha

解决方案是使用co()而不是co.wrap(),并添加.catch()并传递done回调,如下所示。

0 投票
1 回答
1165 浏览

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 中,它工作正常。

0 投票
1 回答
12307 浏览

javascript - 拒绝承诺未定义

我尝试了下面的函数使用co和 javascript promise 测试,fulfill将成功返回但reject没有返回,并捕获未定义的错误。并且流程无法继续。为什么?

错误:

代码:

0 投票
1 回答
22786 浏览

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 并做出贡献。

提前谢谢。

0 投票
2 回答
149 浏览

javascript - 从生成器函数中退出最终承诺范围

我在尝试将承诺结果作为收益返回给原始调用者时遇到了麻烦。

store.js

storeGateway.js

数据库.js

我在上面看到的每个 console.log 上都打印了数据。我只是不知道如何从 storeGateway 的 find() 方法返回存储,因为它在承诺结果中(在 .then() 中)接收存储数组,我需要能够将其返回上游。

(请参阅我在代码中的评论,我正在尝试从我的 store.js 的 find 生成器函数返回 promise 中找到的商店,然后返回上游)。

0 投票
1 回答
2374 浏览

javascript - Co 和 co.wrap 在 Node.js 中的行为不同

虽然我有点弄清楚 Koa 流程机制是如何工作的(我认为),但我似乎无法掌握 co 和 co.wrap 之间的所有差异。这是给出意外行为的代码:

此代码的输出如下:

你可以看到我包装了 co.wrap 的使用,以便它在简单的 co 使用之后。现在很明显typeGen在第二次尝试中没有被调用,但为什么会这样呢?这两个结果不应该是相同的吗?

0 投票
1 回答
573 浏览

node.js - Socket.io + co:这就是它应该使用的方式吗?

我正在尝试让http://socket.io/co 合作

我正在尝试在我的代码中异步执行一些任务。

这就是 socket.io 的工作原理。我现在想加入co这个组合。我尝试了以下方法:

得到这个错误:SyntaxError: Unexpected strict mode reserved word

和这个:

我的问题是,这是应该如何使用它,还是我错过了什么。似乎有很多额外的代码来包装所有东西?

0 投票
1 回答
439 浏览

node.js - 猫鼬不解决查询

我很难理解以下查询有什么问题。我正在使用 mongoose 4.1.10 和 mongodb 3.0.6。

更具体地说,User.findOne({ "local.email": username });永远不会解决。

我什至尝试使用回调方法,但我再次没有得到任何结果。

0 投票
2 回答
143 浏览

python-2.7 - 如何使用注册表设置键盘键

我正在寻找一种方法来编写使用注册表重新映射特定键盘键的脚本(希望在 python 中)。例如:只在回车键和空格键之间切换。

另外我想知道是否可以设置空格键的值。

例如:让空格键写上“空格”这个词。

谢谢 (: