问题标签 [node-promisify]

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

node.js - 无法承诺 node-ftp 功能

我正在使用node-ftp库,我想承诺某些方法(list()get())。

我知道有基于承诺的包装器,但我需要返回可读流(而不是写入本地文件)并且 node-ftp 允许这样做。

get()方法似乎遵循正确的承诺模式,但我无法让它发挥作用:

list([< string >path, ][< boolean >useCompression, ]< function >callback)

未承诺的代码按预期工作

..承诺的代码不会:

返回错误:TypeError: this._pasv is not a function

错误中的存在this.让我认为这是一个箭头函数问题,但使用普通函数也不起作用。

这个 node-ftp 功能(以及类似的c.get())可以这样被承诺吗?还是我错过了什么?

0 投票
2 回答
2541 浏览

node.js - Redis 不会从缓存中检索数据

我正在学习一个教程,并创建了一个 cache.js 文件,该文件采用 mongoose 查询并将其 JSON.stringify 为该查询返回的值的键。目标是缓存它,然后.cache()在 app.js 中mongoose.find()追加

当前,如果缓存为空,我让它从数据库中执行 GET,然后将其存储在缓存中。我有一个

确保数据被存储并成功输出数据。这条线有效。但是有了这条线,

cacheValue空。

这是为什么?

它存储在底部的值和键永远不会改变,所以我不明白为什么它不会返回数据而不是 null。

所以Cache Value #1总是空的并且Cache Value #2有正确的数据。

控制台输出:

0 投票
2 回答
23 浏览

rxjs - 使用回调使方法主体化

我经常使用promisify方法,它将带有回调签名(例如fucntion fn(cb) { ... })的方法转换为返回Promise. 它可以使源代码更简洁、更紧凑。到目前为止,一切都很好。

稍有不同的是,具有回调方法的方法,但回调被多次调用。在这种情况下, aPromise无法做到这一点,因为 Promise 只能执行一次。

理论上,这些方法可以返回一个Subject. (例如 a BehaviorSubject)然后会被触发多次。

这让我想知道: 是否有某种subjectify方法可以为我做到这一点?

例如:当有一种方法可以解析大文档时,它可能很有用。要报告其进度,它可以使用回调方法。但是将其包装在 a 中Subject可能更方便。

0 投票
2 回答
87 浏览

node.js - 在 Promise Resolver 中包含 Promisified 回调?

我正在设置一个 GraphQL 解析器来调用 Braintree 端点。Braintree npm 包希望使用如下代码调用其端点:

GraphQL 解析器返回承诺。我试图弄清楚如何承诺这个回调,并将它包含在一个承诺解析器中。

我已经阅读了很多关于承诺回调的 SO 帖子,但到目前为止我发现的那些似乎与这个用例不太匹配。

我已经尝试了很多东西,这是最新的:

但是 catch 处理程序收到一条错误消息,提示“无法读取未定义的属性 '_createSignature'”。

在这里使用的正确语法是什么?

0 投票
1 回答
376 浏览

node.js - 使用包装在`promisify`中的`fs`对nodejs函数进行单元测试

在下面的代码中,我有一个函数根据提供的配置在文件系统中查找文件。

从这里我试图测试该doSomething功能,但它失败了,因为我提供的文件路径实际上并不存在。当我lstatSync使用promisify.

它现在失败了,因为Error: ENOENT: no such file or directory, lstat 'image.jpg'. 我尝试将存根包装或将ed 函数promisify导出到测试中以存根。promisify两者都没有工作。

我如何存根一个promisifyedfs方法?

0 投票
2 回答
106 浏览

javascript - nodeJS中查询和表达的问题

我正在为带有nodeJS的服务器使用express开发一个网页。我在注册页面上,并且正在尝试验证用户插入的数据,但是当我进行查询时出现错误。

auth.js

数据库.js

common.js

错误显示下一个文本:

(节点:14616)UnhandledPromiseRejectionWarning:TypeError:无法读取 Object.helper_functions.checkRepeatedUserEmail 中未定义的属性“查询”(proyect_path/src/lib/common.js:19:27)...... ……

(节点:14616)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。要在未处理的 Promise 拒绝时终止节点进程,请使用 CLI 标志--unhandled-rejections=strict (请参阅https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)。(拒绝 ID:2)(节点:14616)[DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的 Promise 拒绝将使用非零退出代码终止 Node.js 进程。

有谁知道发生了什么??谢谢阅读!

0 投票
0 回答
112 浏览

javascript - 有没有“最好”的方式来承诺和调用方法函数?

在我看来,一次性promisify和调用方法函数有三种方法:

这些方法中是否有任何一种优于其他方法,或者它们都同样有效?各自的优点和缺点是什么?

0 投票
2 回答
1299 浏览

node.js - 如何将 await 与 promisify 一起用于 crypto.randomBytes?

我正在编写一个函数来使用 crypto.randomBytes 生成一个随机密钥,它需要一个回调。我更喜欢使用异步等待,所以我尝试使用 util.promisify 来包装随机字节,如下所示:

但这会打印key: Promise { <pending> }而不是打印解析的值。我在这里做错了什么?

0 投票
1 回答
23 浏览

node.js - util.promisify 旧库调用

我一直在摸索如何承诺此调用并在数据可用时将数据返回给另一个函数。

有人可以在这里阐明一下吗?我是nodejs的新手

我正在使用的旧库是这个https://www.npmjs.com/package/synology

0 投票
2 回答
7961 浏览

node.js - TypeError [ERR_INVALID_ARG_TYPE]:“原始”参数必须是函数 puppeteer node js 类型

我在这里停留了一段时间,我不明白这个问题。请有人在这个话题上启发我。这是代码。

这是日志::