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

javascript - 用 then 和 catch 链接 promise

我正在使用 bluebird Promise 库。我想链接承诺并捕获特定的承诺错误。这就是我正在做的事情:

但是,如果 抛出错误getSession,则调用两个catch以及第二个then。我想在第一个停止错误传播catch,以便第二个catch仅在getUser抛出时调用,第二个thengetUser成功时调用。做什么?

0 投票
1 回答
224 浏览

javascript - 使用 Bluebird 的承诺依赖

我想并行运行异步事物的动态列表,其中有些事情需要先完成其他事情,然后才能访问所有聚合结果。到目前为止,我想出了通过 multidim 迭代。操作数组,但它需要包装函数/闭包,所以我对它并不完全满意。我想知道人们还在为这种情况做些什么。

操作如下所示:

有没有一些好的方法来映射依赖关系和承诺?能够像这样会很好:

然后将整个事情传递给知道 getPixieDust 和 getMandrake 在调用 makePotion 之前首先完成的事情。而不是当前的实现只是将依赖操作放在后面的数组中

0 投票
13 回答
140131 浏览

javascript - 为 promise 编写循环的正确方法。

如何正确构造一个循环以确保以下承诺调用和链接的logger.log(res)通过迭代同步运行?(蓝鸟)

我尝试了以下方式(来自http://blog.victorquinn.com/javascript-promise-while-loop的方法)

虽然它似乎有效,但我认为它不能保证调用logger.log(res); 的顺序;

有什么建议么?

0 投票
7 回答
28988 浏览

javascript - When is .then(success, fail) considered an antipattern for promises?

I had a look at the bluebird promise FAQ, in which it mentions that .then(success, fail) is an antipattern. I don't quite understand its explanation as for the try and catch. What's wrong with the following?

It seems that the example is suggesting the following to be the correct way.

What's the difference?

0 投票
2 回答
661 浏览

javascript - 嵌套 while 循环 for promise

我遵循了正确的方法来为承诺编写循环。成功地为 Promise 创建循环。

但是,这种方法似乎不适用于嵌套循环

我要模拟的循环:

承诺(注意我在这里简化了 promFunc() 的逻辑,所以不要认为它没用)

实际结果:

有什么解决办法吗?

0 投票
1 回答
1015 浏览

javascript - Node.js Bluebird Promise 抱怨“将循环结构转换为 JSON”

为了进行传出 api 调用,我使用了包装在 bluebird promise 对象中的 restler。但是,我得到了一个Possibly unhandled TypeError: Converting circular structure to JSONat node_modules/bluebird/js/main/promise.js

即使没有 JSON.stringify,也会发生这种情况。它发生在 promise.js 的级别。

我能做些什么呢?

更新:如果有帮助,这里是错误对象的键:

0 投票
1 回答
1230 浏览

node.js - 如何在.push之前在array.forEach中承诺MongoDB / Mongoose .findOne?

浏览了 bluebird 自述文件示例,我仍然想知道如何实现/转换一些异步代码以涉及带有 .then 的承诺。

这里有许多 ifStatements,但主要的一点是,当循环遍历时toArray,如果element数据库中存在 (findOne),然后将其分配给一个变量,以 .push 到 new ( .post & .save) 数据库文档。

这是当前的异步代码,因此在 .save 之后运行 findOne .. 但它需要在之前运行:

0 投票
1 回答
490 浏览

node.js - Bluebird 捕获错误的日志记录语法?

什么是等效的 Bluebird 承诺错误记录到此:

为了这:

0 投票
1 回答
15622 浏览

concurrency - 如何为 map 函数使用 bluebird 并发选项

我正在尝试使用带有内置并发控制的蓝鸟地图功能。

我想检索一个名称列表,然后为每个名称发出一些 POST 请求。例如,我想为一周中的每一天请求每个名称。但是,我需要限制并发 POST 请求的数量,因为预期的服务器有速率限制。

这是使用蓝鸟并发的正确方法吗?

文档链接在这里bluebird documentation

0 投票
1 回答
3159 浏览

javascript - Bluebird.js 自定义错误捕获功能,不适用于第一个承诺?

我正在尝试使用 Bluebird.js 的自定义错误处理程序。

在下面的示例中,调用的是包罗万象的处理程序,而不是 MyCustomError 处理程序,但是当我将拒绝移动到then函数(并解决了 firstPromise...)时,调用了 MyCustomError 处理程序。这是为什么?有什么问题吗?谢谢。