问题标签 [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.
javascript - 用 then 和 catch 链接 promise
我正在使用 bluebird Promise 库。我想链接承诺并捕获特定的承诺错误。这就是我正在做的事情:
但是,如果 抛出错误getSession
,则调用两个catch
以及第二个then
。我想在第一个停止错误传播catch
,以便第二个catch
仅在getUser
抛出时调用,第二个then
在getUser
成功时调用。做什么?
javascript - 使用 Bluebird 的承诺依赖
我想并行运行异步事物的动态列表,其中有些事情需要先完成其他事情,然后才能访问所有聚合结果。到目前为止,我想出了通过 multidim 迭代。操作数组,但它需要包装函数/闭包,所以我对它并不完全满意。我想知道人们还在为这种情况做些什么。
操作如下所示:
有没有一些好的方法来映射依赖关系和承诺?能够像这样会很好:
然后将整个事情传递给知道 getPixieDust 和 getMandrake 在调用 makePotion 之前首先完成的事情。而不是当前的实现只是将依赖操作放在后面的数组中
javascript - 为 promise 编写循环的正确方法。
如何正确构造一个循环以确保以下承诺调用和链接的logger.log(res)通过迭代同步运行?(蓝鸟)
我尝试了以下方式(来自http://blog.victorquinn.com/javascript-promise-while-loop的方法)
虽然它似乎有效,但我认为它不能保证调用logger.log(res); 的顺序;
有什么建议么?
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?
javascript - 嵌套 while 循环 for promise
我遵循了正确的方法来为承诺编写循环。成功地为 Promise 创建循环。
但是,这种方法似乎不适用于嵌套循环
我要模拟的循环:
承诺(注意我在这里简化了 promFunc() 的逻辑,所以不要认为它没用):
实际结果:
有什么解决办法吗?
javascript - Node.js Bluebird Promise 抱怨“将循环结构转换为 JSON”
为了进行传出 api 调用,我使用了包装在 bluebird promise 对象中的 restler。但是,我得到了一个Possibly unhandled TypeError: Converting circular structure to JSON
at node_modules/bluebird/js/main/promise.js
。
即使没有 JSON.stringify,也会发生这种情况。它发生在 promise.js 的级别。
我能做些什么呢?
更新:如果有帮助,这里是错误对象的键:
node.js - 如何在.push之前在array.forEach中承诺MongoDB / Mongoose .findOne?
浏览了 bluebird 自述文件示例,我仍然想知道如何实现/转换一些异步代码以涉及带有 .then 的承诺。
这里有许多 ifStatements,但主要的一点是,当循环遍历时toArray
,如果element
数据库中存在 (findOne),然后将其分配给一个变量,以 .push 到 new ( .post & .save) 数据库文档。
这是当前的异步代码,因此在 .save 之后运行 findOne .. 但它需要在之前运行:
node.js - Bluebird 捕获错误的日志记录语法?
什么是等效的 Bluebird 承诺错误记录到此:
为了这:
concurrency - 如何为 map 函数使用 bluebird 并发选项
我正在尝试使用带有内置并发控制的蓝鸟地图功能。
我想检索一个名称列表,然后为每个名称发出一些 POST 请求。例如,我想为一周中的每一天请求每个名称。但是,我需要限制并发 POST 请求的数量,因为预期的服务器有速率限制。
这是使用蓝鸟并发的正确方法吗?
文档链接在这里bluebird documentation。
javascript - Bluebird.js 自定义错误捕获功能,不适用于第一个承诺?
我正在尝试使用 Bluebird.js 的自定义错误处理程序。
在下面的示例中,调用的是包罗万象的处理程序,而不是 MyCustomError 处理程序,但是当我将拒绝移动到then函数(并解决了 firstPromise...)时,调用了 MyCustomError 处理程序。这是为什么?有什么问题吗?谢谢。