问题标签 [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 投票
3 回答
1893 浏览

javascript - 如何在循环中针对 es6 生成器执行异步任务

我了解如何使用生成器使异步代码看起来不错。我有一个简单的生成器*all,它需要一个page,将返回一个值。

然后我有另一个生成器*allDo,它将*all用于第 1 到 30 页,并为每个结果做一些 async task

然后我有另一个生成器*allBatchDo,它将批处理 3 页,并执行一些异步操作task

这些生成器的示例用法是:

问题是,这是对 es6 异步功能的合法使用,还是对我的用例有一个抽象的内置解决方案?

0 投票
1 回答
800 浏览

node.js - 如何在 koa 中使用 thunk 获取 readStream ?

我想在 koa 控制器中传递一个请求,它的工作:

但是使用 thunk ,它似乎不起作用。

这是thunk

0 投票
1 回答
4927 浏览

node.js - 如何使用和谐标志启动全局 npm 模块

我写了一个可以全局安装的 npm 模块dm-npm

我喜欢在那个模块中使用 co 。

我如何告诉模块它在全局启动时以和谐标志运行?

这是package.json:

使用 co 函数运行时出现以下错误消息:

它是由

0 投票
3 回答
716 浏览

node.js - NodeJs,如何将数据从co返回到外部对象

需要帮忙!我怎样才能获得表格 co 之外的数据?我不想在 .then() 中处理它们。

我有一些这样的代码(ES6):

现在我不想处理 .then() 中的数据,我只想取出值。但如果我这样做:

我得到的是一个承诺对象......

那么,我应该如何获取 json 数据呢?谢谢。

0 投票
1 回答
478 浏览

arrays - 如何将 Bluebird Promisification 与生成器 + 并行 Promise 一起使用

尝试使用 bluebird 和 koa 向 beats api 发出多个请求作为生成器。

在阅读了一些文档后,我认为以下内容会起作用

方法 makeAPI 调用按预期与 firstCall 一起使用,但由于某种原因,当我开始将 makeAPICall 方法放入数组时,它们似乎永远不会执行。变量响应只产生一组函数,而不是来自 beats api 的一组响应。我需要更改什么才能使响应返回类似于 firstCall 的对象数组?

0 投票
1 回答
665 浏览

javascript - 如何在 javascript 中使用生成器模拟同步调用?

假设下一段代码:

如您所见,我使用单个方法getFieldValue定义myObj。第一次调用此方法时,它会从数据库中加载值。该值被缓存,并在后续调用中直接返回该值。该解决方案效果很好,但是对象的用户必须在生成器上下文中运行,并在每次访问对象方法之前编写一个 yield。

我可以假设所有调用都将在生成器上下文中完成。但是有没有办法重写myObj 实现,以便用户不需要包含 yield 关键字?

我希望用户可以写一些这样的东西(没有产量):

0 投票
1 回答
3328 浏览

javascript - 如何在 Co-Request 模块和 NodeJs 中对文件进行管道响应?

我正在使用Co-Request 从 http url 读取 Zip 文件,并且我有以下代码可以从服务器读取..

该代码已经有效。但我不知道如何将响应 Zip 写入文件。

Co-Request 实际上是 Request 的包装器,我在下面找到了将文件传输到流的代码。但不确定如何使用 Co-Request with yield 来编写相同的内容。

请帮助如何使用 yield 和 co-request 将响应 zip 写入文件

0 投票
2 回答
1238 浏览

node.js - 请求后使用 supertest 和 co 验证数据库内容

我想编写一个测试来更新博客文章(或其他): * 在数据库中插入博客文章 * 获取博客文章在 MongoDb 中获得的 ID * 将更新版本发布到我的端点 * 请求完成后:检查在已完成更新的数据库中

这是这个,使用koa

我意识到那里有很多活动部件,但我已经分别测试了所有交互。这是我包含的 db 文件(我知道它工作正常,因为我在生产中使用它):

生产代码按预期工作。这个测试通过了,但在我看来,就像 .end() 子句中的协同函数永远不会运行......但是 done() 调用被调用了。至少没有打印“CHECKED DB”。

我试过用“done()”和“done”没有。有时这有效,有时无效。我试图将数据库检查移到请求之外......但这只是挂起,因为 supertest 希望我们在完成时调用 done()。

所有这一切让我感到困惑和害怕(:)) - 我在这里做错了什么。

0 投票
0 回答
157 浏览

node.js - KoaJs 一次只能流式传输一个连接

我正在尝试用 koajs 做一些大管道。

在 myPage 里面

然后渲染将做渲染的东西(异步);

但是,在我尝试在浏览器上打开多个标签之前,它运行顺利。

在完成之前它不会渲染其他页面(我有一个 setTimeout 来模拟渲染中的异步内容)。

无论如何要同时流式传输多个连接吗?就像普通请求(不是 bigpipe)一样?

0 投票
0 回答
33 浏览

node.js - 有没有办法创建一个实例

因为co@4.0+我们可以使用下面的语句

var fn = co.wrap(fn*)

将生成器转换为返回 Promise 的常规函数​​。

然后我面临一个问题

a.js

b.js如何在by中创建实例co


@Bergi 说这是一种不好的做法

然后我想问一个问题

这是不好的做法吗?