问题标签 [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.
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()
)可以这样被承诺吗?还是我错过了什么?
node.js - Redis 不会从缓存中检索数据
我正在学习一个教程,并创建了一个 cache.js 文件,该文件采用 mongoose 查询并将其 JSON.stringify 为该查询返回的值的键。目标是缓存它,然后.cache()
在 app.js 中mongoose.find()
追加
当前,如果缓存为空,我让它从数据库中执行 GET,然后将其存储在缓存中。我有一个
确保数据被存储并成功输出数据。这条线有效。但是有了这条线,
为cacheValue
空。
这是为什么?
它存储在底部的值和键永远不会改变,所以我不明白为什么它不会返回数据而不是 null。
所以Cache Value #1
总是空的并且Cache Value #2
有正确的数据。
控制台输出:
rxjs - 使用回调使方法主体化
我经常使用promisify
方法,它将带有回调签名(例如fucntion fn(cb) { ... }
)的方法转换为返回Promise
. 它可以使源代码更简洁、更紧凑。到目前为止,一切都很好。
稍有不同的是,具有回调方法的方法,但回调被多次调用。在这种情况下, aPromise
无法做到这一点,因为 Promise 只能执行一次。
理论上,这些方法可以返回一个Subject
. (例如 a BehaviorSubject
)然后会被触发多次。
这让我想知道:
是否有某种subjectify
方法可以为我做到这一点?
例如:当有一种方法可以解析大文档时,它可能很有用。要报告其进度,它可以使用回调方法。但是将其包装在 a 中Subject
可能更方便。
node.js - 在 Promise Resolver 中包含 Promisified 回调?
我正在设置一个 GraphQL 解析器来调用 Braintree 端点。Braintree npm 包希望使用如下代码调用其端点:
GraphQL 解析器返回承诺。我试图弄清楚如何承诺这个回调,并将它包含在一个承诺解析器中。
我已经阅读了很多关于承诺回调的 SO 帖子,但到目前为止我发现的那些似乎与这个用例不太匹配。
我已经尝试了很多东西,这是最新的:
但是 catch 处理程序收到一条错误消息,提示“无法读取未定义的属性 '_createSignature'”。
在这里使用的正确语法是什么?
node.js - 使用包装在`promisify`中的`fs`对nodejs函数进行单元测试
在下面的代码中,我有一个函数根据提供的配置在文件系统中查找文件。
从这里我试图测试该doSomething
功能,但它失败了,因为我提供的文件路径实际上并不存在。当我不lstatSync
使用promisify
.
它现在失败了,因为Error: ENOENT: no such file or directory, lstat 'image.jpg'
. 我尝试将存根包装或将ed 函数promisify
导出到测试中以存根。promisify
两者都没有工作。
我如何存根一个promisify
edfs
方法?
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 进程。
有谁知道发生了什么??谢谢阅读!
javascript - 有没有“最好”的方式来承诺和调用方法函数?
在我看来,一次性promisify和调用方法函数有三种方法:
这些方法中是否有任何一种优于其他方法,或者它们都同样有效?各自的优点和缺点是什么?
node.js - 如何将 await 与 promisify 一起用于 crypto.randomBytes?
我正在编写一个函数来使用 crypto.randomBytes 生成一个随机密钥,它需要一个回调。我更喜欢使用异步等待,所以我尝试使用 util.promisify 来包装随机字节,如下所示:
但这会打印key: Promise { <pending> }
而不是打印解析的值。我在这里做错了什么?
node.js - util.promisify 旧库调用
我一直在摸索如何承诺此调用并在数据可用时将数据返回给另一个函数。
有人可以在这里阐明一下吗?我是nodejs的新手
我正在使用的旧库是这个https://www.npmjs.com/package/synology
node.js - TypeError [ERR_INVALID_ARG_TYPE]:“原始”参数必须是函数 puppeteer node js 类型
我在这里停留了一段时间,我不明白这个问题。请有人在这个话题上启发我。这是代码。
这是日志::