问题标签 [bluebird]

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 回答
27741 浏览

javascript - Sequelize 中的 Promise:如何从每个 Promise 中获取结果

在 Sequelize >=1.7中,我们可以使用Promise

你能为我解释一下如何在这段代码中从每个用户那里获取值:

UPD

所有值都需要设置与其他模型的关联。其实我需要一些像这样的代码:

0 投票
3 回答
2316 浏览

javascript - 如何打破承诺中的循环?

我正在使用 Bluebird 库做某种 QA(问题/答案)应用程序。所以这是场景:

  1. 用户在表格中填写一些问题的答案(例如 5 个问题)。
  2. 一个问题有多个可能的答案:“问题有很多答案”
  3. 使用node.bcrypt在数据库上对答案进行加密(bcrypt)
  4. 循环遍历答案时,如果用户答案匹配,则无需继续检查该问题的答案。

因此,在做同步的事情时解决这个问题是一个常见的问题,但是我有点迷失了用 Promise 做异步。

这是我不知道如何进行的示例:

0 投票
2 回答
55056 浏览

javascript - 如何处理 promise 的错误?

作为一个节点程序员。我习惯于使用“nodebacks”来处理我的代码中的错误:

在编写该函数时,我可以执行以下操作:

我将如何使用 Promise 进行这种错误处理?

0 投票
1 回答
1168 浏览

promise - 蓝鸟什么时候记录未处理的拒绝?

我无法理解蓝鸟何时会记录未处理的拒绝而不是丢弃它。我想这与文档中所说的“第二回合”有关,但我不清楚这意味着什么。

-> 没有日志

-> 堆栈跟踪记录

-> 没有日志

-> 堆栈跟踪记录

-> 堆栈跟踪记录

我正在将一些代码转换为蓝鸟承诺,但我收到的拒绝到处都是。(好吧,首先是#100,我是个白痴。)我想我会使用 .promisify 而不是 .method 来克服我目前的无声失败,但我害怕可能会有其他情况我会错过抛出的错误。

0 投票
2 回答
6481 浏览

javascript - 如何使用 Bluebird 错误处理程序?

介绍

这个问题旨在最终解决我在开发 Bluebird 时遇到的问题。但是,我也在利用这个机会澄清一些事情,所以会有一些附带问题。对于您在阅读即将到来的故事时可能遇到的任何困惑或无聊感,我也提前道歉。


问题

据我了解,Bluebird 会根据以下策略智能地捕捉被忽略的拒绝:

第二种方法是 bluebird 默认采用的方法,如果拒绝在第二轮开始时未处理,则调用已注册的处理程序。-- Bluebird 自述文件 # 错误处理

现在这里存在第一个侧面问题:“第二轮的开始”是什么意思?

稍后在同一部分中,记录了以下内容:

当然,这并不完美,如果您的代码出于某种原因需要在某个 Promise 挂起一段时间后突然介入并将错误处理程序附加到某个 Promise 上,那么您将看到烦人的消息。在这种情况下,您可以使用 .done() 方法来表示应该抛出任何挂起的异常。-- Bluebird 自述文件 # 错误处理

现在,我相信我遇到了上述情况,我的用例如下:

  • 我调用一个函数,它将为我提供我附加的承诺.catch()

    /li>
  • 在内部,该函数从 URL1 加载内容并根据内容依次从 URL2 加载内容:

    /li>
  • 如果此链中的第二个承诺被拒绝,则错误首先由 catch 处理,然后由 BluebirdsPossibly unhandled error处理程序处理。

最后一种行为是不需要的,我无法弄清楚它为什么会这样做。所以问题二可能是:为什么尽管附加并执行了错误处理程序,Bluebird 仍然考虑错误被“未处理”的可能性?

我在想,当拒绝传播到.catch(). 在这种情况下,我应该通过“使用”来解决它(根据引用的文档).done()

现在,我已经尝试了几件事,但我不太清楚在这种情况下如何“使用 .done”。(返回 undefined 并没有帮助.done(),阻止我.finally-ing。)

所以这引入了我的第三个和第四个问题:在这种情况下我如何使用.done(),以及我如何明确地结束一个承诺链,但仍然附加一个.finally()

编辑 1:我创建了一些 JSFiddles 来重现该错误:

编辑 2:开发人员修复了错误。

0 投票
1 回答
11454 浏览

javascript - 在 for 循环中将 Promise 添加到 Promise 数组

让我们假设以下示例:

为什么不能执行以下操作:

它需要aprox。2500 毫秒,但console.log('done')未被调用。有什么问题,我做错了吗?

最好的,redshark1802

0 投票
1 回答
4025 浏览

javascript - 我可以用 Bluebird.js 做一个“懒惰”的承诺吗?

我想要一个等到then它运行之前被调用的承诺。也就是说,如果我从未真正调用then,则承诺将永远不会运行。

这可能吗?

0 投票
1 回答
1788 浏览

javascript - Bluebird Promise 库:.map 和 .filter 是否并行运行?

我正在尝试在bluebird promises中编写一堆异步fs调用。除了我担心性能之外,这一切都很好。我不知道and函数是并行执行还是顺序执行。这是我的代码:.map.filter

我特别关心对的调用,onlyDirs因为它会进行一堆异步fs.stat调用,并且可以/应该并行。我尝试查看他们的 api 文档,但我没有看到任何关于并行化的信息。

注意:我目前无法使用 ECMAScript6 生成器(很遗憾)。

此外,欢迎任何其他关于性能的指针。

0 投票
3 回答
651 浏览

promise - 在安全代码块中使用 Bluebird 进行进度

我想在 Bluebird 中创建一个安全且可以访问 progress() 的代码块 - 这可能吗:

做我想做的事情的一种方法是使用异常处理程序 - 但我正在寻找一个没有:

同样根据文档:

不鼓励使用 Promise.defer - 它比使用新的 Promise 更加尴尬和容易出错。

所以我可以这样做:

但是我没有办法推进那个?

谢谢,

0 投票
2 回答
1913 浏览

ecmascript-harmony - Co.js 和 bluebird.js——有什么区别?

有人可以帮我理解在 ES6 Harmony 中使用 Koa.js 和 Bluebird.js 之间的区别。具体怎么做

相比于,

看来 Koa 应该使用 Bluebird 而不是重新创建轮子。有什么不同?