问题标签 [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 回答
153 浏览

javascript - 使用 co 优于 async/await 函数和使用 babel 编译的优点

Co 自称是“迈向 ES7 async/await 的垫脚石”,但我不确定为什么我应该使用它而不是仅仅编写异步函数和使用 babel 编译。这些方法有什么优点和缺点,还是只是偏好问题?

0 投票
2 回答
437 浏览

javascript - 为什么 node.js 生成器没有按预期工作?

给定以下两个代码片段,为什么事务对象在工作案例中可见但在其他情况下不可见?

工作案例:

不工作的情况:

在第二种情况下是否可以使交易可见?

0 投票
1 回答
71 浏览

javascript - 丢失从共同包装函数传递给另一个函数的参数

我正在使用最新的协同模块(4.6)。

这是一个 Koa 中间件。因此它已经被co()包裹了。

它正在调用我手动包装的另一个生成器函数co

为什么我“松开”参数?

0 投票
0 回答
88 浏览

javascript - 来自 fs-promise 和 co 的 mkdirp 问题

我有一个生成器函数,它创建一个目录并在完成后对其执行操作:

这是我执行代码时得到的输出:

更新:

我发现了这个问题,它与示例中的代码无关,而是在我编写此 gem 的地方有一行:

0 投票
1 回答
105 浏览

javascript - 具有异步例程的新对象

我想实例化一个对象,构造函数在返回之前执行异步调用。目的是进行异步柯里化。我正在使用co。以下示例失败。我究竟做错了什么?

0 投票
2 回答
273 浏览

javascript - mongoose 和 es6 的承诺没有按预期工作

我有以下代码,它创建了一个承诺数组来保存一些数字,然后它产生承诺(使用 co 库)并打印出结果。然而,我不明白的是,当它打印输出时,它会打印相同的记录 10 次。

这是代码:

这是输出:

请注意,如果我x在 Promise 中声明变量,那么我会得到预期的结果(例如,输出中有 10 个不同的数字)。换句话说,如果我进行此更改(见下文),它将按预期工作:

我的问题是,为什么代码会这样?请注意,如果我重复完全相同类型的测试而不使用 mongodb/mongoose 并且只打印一些数字,即使x在 Promise 之外声明它也会按预期工作。下面的示例代码:

输出:

0 投票
1 回答
57 浏览

javascript - 并行执行包含 co 包装的生成器的 Promise

我正在为我的数据库创建种子数据。种子函数是共同包装的生成器(https://www.npmjs.com/package/co):

在某一时刻,我试图创建 40 个拍卖,每个拍卖都有一个出价。到目前为止,我有一个这样的 for 循环:

现在我想并行创建拍卖,但我不能让它工作。

co当 yield 与数组一起使用时支持并行执行。

但是,我仍然需要先创建一张发票,然后使用收益率为其出价。

我尝试将上述内容包装在一个 Promise 和一个内部共同包装的生成器函数中,但它永远不会完成执行。

我怎么解决这个问题?(如果可能,不使用更多包)

这是我对内部生成器的尝试:

0 投票
1 回答
685 浏览

ansible - 如何通过 Ansible 将 Json 输出值存储在变量中

在 Ansible 中,我正在使用 REST API...我想要clientid下面代码中的值并希望在另一个任务中使用它。我正在使用 ansible uri 模块。

我想将“16”存储在一个变量中并且需要传递另一个 url

0 投票
0 回答
115 浏览

javascript - 将 co 与 node-mysql2 一起使用

我正在使用带有 node-mysql2 的 co 库。

这用作

抛出以下错误:

池是这样定义的:

但是,如果我将上面的第 5 行从

即,如果我删除“yield”关键字,一切正常

根据作者

他确实建议使用yield conn.end(),我担心如果我不在那里“屈服”,我可能会搞砸一些事情。

任何线索我在这里缺少什么?

0 投票
1 回答
78 浏览

javascript - 如何从Javascript中的包装生成器函数返回thenable?

我的项目中有这样的代码:

正如预期的那样,这不起作用,因为浏览器对象有 method then。我想知道是否有任何方法可以thenable从包装的生成器函数返回对象。(或者可能是其他一些库,而不是co用于包装支持这种情况的生成器)。