bluebird相关内容

NodeJS、promises、streams - 处理大型 CSV 文件

我需要构建一个函数来处理用于 bluebird.map() 调用的大型 CSV 文件.鉴于文件的潜在大小,我想使用流式传输. 这个函数应该接受一个流(一个 CSV 文件)和一个函数(处理流中的块),并在文件被读取到结束(解决)或错误(被拒绝)时返回一个承诺. 所以,我从: 'use strict';var _ = require('lodash');var promise = req ..
发布时间:2021-12-29 10:17:50 其他开发

像 Q 一样定义空的 Bluebird 承诺

使用 Q 我可以定义一个新的承诺: var queue = q(); 但如果我这样做,Bluebird: var queue = new Promise(); 我明白了: TypeError:promise 构造函数需要解析器函数 如何获得与 Q 相同的结果? 这是我的代码片段: var queue = q()承诺 = [];queue = queue.then(函数(){返回 ..
发布时间:2021-12-29 10:16:48 前端开发

如何使用 bluebirdjs 按顺序链接承诺?

Promise.all() 不保证承诺会按顺序解决.这怎么办? 解决方案 由于您使用的是 Bluebird JS,这实际上可以通过简单的方式完成. 在 2.0 版本中,Bluebird 引入了执行此操作的 Promise.each 方法,因为循环 then 非常简单,但由于它是如此常见并且一次又一次地被请求,因此最终将其添加为自己的方法. function foo(item, ms ..
发布时间:2021-12-29 10:14:52 前端开发

位于 Promise 链中间的 EventEmitter

我正在做一些涉及按顺序运行 child_process.spawn() 序列的事情(进行一些设置,然后运行调用者感兴趣的实际命令,然后进行一些清理). 类似于: doAllTheThings().then(函数(退出状态){//所有的事情都完成了//我们已经返回了 exitStatus//链中间的命令}); 其中 doAllTheThings() 类似于: function doAll ..
发布时间:2021-12-29 10:11:58 其他开发

如何确保正确的“这个"与 Promise.promisify?

我正在尝试使用带有 Bluebird 库的 promise 重构我的 nodejs 服务器,但我遇到了一个简单的问题. 从我的数据库中获取用户后,我想列出与该用户关联的所有通知类: 糟糕的方式(工作...) adapter.getUsers(function(users){users.rows.forEach(功能(项目){用户 = 项目.用户名;适配器.getNotificatio ..
发布时间:2021-12-29 10:09:35 前端开发

你如何正确地承诺请求?

Bluebird promisifaction 是一个小魔法,而 request 则相当混乱(它是一个具有方法的对象的函数). 具体场景非常简单:我有一个通过 cookie jar 启用 cookie 的请求实例(不使用 request 的全局 cookie 处理程序).我怎样才能有效地承诺它,以及它支持的所有方法? 理想情况下,我希望能够: 调用 request(url) -> ..
发布时间:2021-12-29 10:08:58 前端开发

在此之前和之后放置捕获

我无法理解将 .catch BEFORE 和 AFTER 放在嵌套 promise 中的区别. 备选方案 1: test1Async(10).then((res) => {返回 test2Async(22).then((res) => {返回 test3Async(100);}).catch((错误) => {抛出“错误之后";});}).then((res) => {控制台日志(res) ..
发布时间:2021-12-29 10:04:15 前端开发

如何使用 Bluebird 保证 Node 的 child_process.exec 和 child_process.execFile 函数?

我在 Node.js 下使用 Bluebird promise 库,很棒!但我有一个问题: 如果您查看 Node 的 child_process.exec 和 child_process.execFile 你可以看到这两个函数都返回一个 ChildProcess 对象. 那么推荐的承诺这些功能的方法是什么? 请注意以下工作(我得到一个 Promise 对象): var Prom ..
发布时间:2021-12-29 10:01:23 前端开发

使用蓝鸟承诺的 while 循环

我正在尝试使用 Promise 实现一个 while 循环. 这里概述的方法似乎有效.http://blog.victorquinn.com/javascript-promise-while-loop它使用了这样的函数 var Promise = require('bluebird');var promiseWhile = 函数(条件,动作){var 解析器 = Promise.defer ..
发布时间:2021-12-29 10:00:30 前端开发

Promise.resolve vs new Promise(resolve)

我正在使用 bluebird,我看到了两种将同步函数解析为 Promise 的方法,但我不明白这两种方法之间的区别.看起来堆栈跟踪有点不同,所以它们不仅仅是一个别名,对吧? 那么首选的方式是什么? 方式 A function someFunction(someObject) {返回新的承诺(功能(解决){someObject.resolved = true;解决(一些对象);});} ..
发布时间:2021-12-29 09:59:22 前端开发

既然我们有 ES6 承诺,还有理由使用像 Q 或 BlueBird 这样的承诺库吗?

在 Node.js 添加对 promise 的原生支持后,还有理由使用 Q 或 BlueBird 之类的库吗? 例如,如果您正在启动一个新项目,并且假设在该项目中您没有任何使用这些库的依赖项,我们是否可以说真的没有更多理由使用这些库? 解决方案 古老的格言说,您应该为工作选择正确的工具.ES6 承诺提供了基础知识.如果您想要或需要的只是基础知识,那么这应该/可以为您工作.但是,工具箱 ..
发布时间:2021-12-29 09:59:14 前端开发

从父承诺中解决一系列承诺

这是我第一次尝试嵌套 promise.我正在使用 bluebird 库,但我认为所有 Promise 库的想法都是一样的. 在高层次上,这就是我想要做的: myService.getSomeData(url).then((数据) => {myOtherService.getMoreData(data.uniqueId).then((thisDataIsAnArray) => {//遍历上面 ..
发布时间:2021-12-29 09:59:04 前端开发

在节点中使用Redis SCAN

我的 Redis 有很多某种格式的键,我想获得匹配某种模式的键并对它们进行一些操作.我不使用 KEYS 方法,因为它不推荐在生产中使用.使用 SCAN 我想知道用代码编写它的最佳方法是什么.我必须做一些类似 while 循环的事情,但是使用 promises,我当前的解决方案看起来像这样(代码稍微简化了一点): '使用严格'const Promise = require('bluebird'); ..
发布时间:2021-12-28 09:29:07 其他开发

在 for 循环中等待 promise

让当前产品;for (let i = 0; i {更新(订阅,当前产品);});} 我正在使用 bluebird,方法 getAll 和 update 返回承诺.我怎么能说“等到两个承诺返回,然后更新 currentProduct 值"?我对 JS 很陌生... 解决方案 如果您可以使用 async/await,这将很简单: //确保此代码在使用声明的函数内//`async` 关键字 ..
发布时间:2021-12-27 23:28:24 前端开发