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

promise - Bluebird,Promise.bind - 如何访问未决承诺中的绑定上下文?

有人Promise.bind()在蓝鸟中指出我能够在承诺链中拥有上下文。

但是,当我只引用 promise 对象(带有thencatchAPI 的对象)时,我的用例要求我“从外部”使用这个上下文。

那可能吗?

0 投票
1 回答
503 浏览

javascript - Promise / bluebird.js 中的错误处理

then在处理错误的上下文中,这些调用之间有什么区别?

在第一个示例中,如果函数functionThatReturnsPromisethrows error,则不会调用 catch 块,并且 bluebird 会打印错误;

0 投票
1 回答
157 浏览

javascript - 如何防止嵌套的 promise 挂起?

以下代码有效(用户对象被写入控制台),但该进程不会退出。我相信其中一项承诺一定不能解决?

这段代码有什么问题?

0 投票
1 回答
879 浏览

cordova - 使用 Bluebird 将 cordova 插件变成 promise

我试图找到一个优雅的解决方案来将科尔多瓦插件调用变成蓝鸟承诺,并且想知道是否有比做这样的事情更好的方法:

科尔多瓦插件函数“粘贴”采用回调函数,在该回调中我正在解决或拒绝承诺。还有比这更好的方法吗?

0 投票
1 回答
4108 浏览

javascript - 蓝鸟中的嵌套承诺

我试图弄清楚如何在 bluebird 库中正确使用 Promise。我在我的代码中遇到了一些嵌套的承诺,我注意到在 bluebird docs 中它写道:

如果您正在使用完整的 bluebird API 产品,那么您几乎从一开始就不需要求助于嵌套 Promise。

还有许多其他关于 Promise 被滥用的博客文章,并且嵌套是一种常规的反模式。

我所有的函数都返回对象。查看 bluebird 文档,似乎有多种辅助方法:all()、join()、props()。

所以,我的问题是:如果有依赖关系,我怎么能避免嵌套?也许这是我对 Promise 的异步特性的误解。像这样的东西可以吗?

0 投票
3 回答
2830 浏览

node.js - nodejs、postgres 和 bluebird

我一直在尝试将 bluebird 承诺与 pg 库一起使用,甚至发现了这篇文章,但遗憾的是,我对 StackOverflow 用户太陌生,无法直接在那里发表评论:Manually promisifying pg.connect with Bluebird

简而言之,在剪切和粘贴该代码后,我使用 bluebird Promisfy 函数尝试的所有操作都没有引入任何查询构造函数,也许我在尝试中误用了 ClientAsync 函数,但是我希望这是一个快速简便的帮助,因为我尝试的一切都会导致以下变化:

我转储了 PromisfyAll 函数结果,并且确实不存在 queryAsync:

相关片段:

它在解析中找到相关函数,但不承诺查询:有谁知道我如何进一步解决这个问题或使用 ClientAsync 执行 SQL 查询的潜在语法?我试图从 Bluebird github 页面上的信息中手动添加 pg query.js 文件,但无济于事。

0 投票
0 回答
181 浏览

javascript - Promise 函数在不同范围内的行为不同

我使用 promise 和 mongoskin 编写了一个简单的查询函数,我想根据使用输入动态测试查询。

问题是函数getUser在不同的上下文中表现不同。关于为什么会发生这种情况的任何想法?

这是我的代码:

PS:我已经承诺了mongoskin模块

PS2:回调成功失败只是通过console.log()打印出错误......

PS3:我使用bluebird promise & 完整代码已更新

0 投票
1 回答
1956 浏览

javascript - 蓝鸟的“可能未处理的错误”警告在什么情况下会出错?

“可能”一词表明在某些情况下,即使您自己发现错误,您也可以在控制台中收到此警告。

那些情况是什么?

0 投票
1 回答
88 浏览

javascript - .then() 究竟如何处理传入的函数?

根据 Promise A+ 规范,

2.2.2.1 如果 onFulfilled 是一个函数,它必须在 promise 完成后调用,promise 的值作为它的第一个参数。

但是,如果在.then () 中传递了一个 Promise,会发生什么?

现在我们有了这段代码:

为什么要打印“你好”?

在 api 函数中,wrapper() 通过 func1() 被评估为一个Promise,并在 .then() 中被传递。现在,这个承诺根据引用的规范执行“onFulfilled”功能。但是,规范说 onFulfilled(在这种情况下是返回的 promise)期望传入一个参数作为调用 .then() 的前一个 promise 的。但是如何将值传递到 Promise 中呢?

我不太擅长解释事情。因此,如果您感到困惑,您能解释一下为什么要打印“hello”吗?如何?

0 投票
1 回答
275 浏览

node.js - 与 Mongoose 连接时的竞态条件

这会导致竞争条件,其中返回的文档数量是随机的,并且少于集合中的完整数量。但是,如果我find延迟包装(比如 3 秒),我会得到所有文件。但我的印象是,如果我等待“开放”事件,我就不会遇到这样的比赛条件。我正在使用 Bluebird 承诺,fwiw,但如果我放弃承诺而只使用回调,我会得到相同的结果。

我究竟做错了什么?