问题标签 [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 回答
944 浏览

node.js - 使用 util.promisify 和 exec 不能解决 git hook 中的承诺

根据文档require('child_process').exec,您可以通过执行以下操作来承诺 NodeJS' :

但是,当我在 'prepare-commit-msg' git 挂钩中使用这种方法来获取当前分支名称时,stdout常量是一个承诺对象,而不是我期望的分支名称值。我错过了什么吗?

0 投票
1 回答
48 浏览

javascript - Promisify 一个返回 null 的函数

此函数返回 null ,我需要对其进行承诺。但我不明白这段代码。有人能帮忙吗。

0 投票
1 回答
230 浏览

node.js - 节点:带有 util.promisify 的异步版本的 readline

我正在尝试创建readlinewith的异步版本promisify

以这种方式使用的东西:

这是我的尝试:

我受到了我拥有的其他包装器的启发mysql,它运行良好:

但是没有返回任何东西。任何的想法?

0 投票
1 回答
87 浏览

javascript - 如何解决问题:Uncaught (in promise) TypeError: promisify is not a function?

下面是我的代码。我使用节点 v12.16.3 和 npm v6.14.4。

控制台显示如下错误: Uncaught (in promise) TypeError: promisify is not a function

我称之为承诺的地方:

我应该怎么做才能解决错误?

nodejs的新手,我愿意知道和学习任何东西。谢谢!

0 投票
1 回答
815 浏览

node.js - Node.js redis 使用 .multi 或 .batch 承诺

使用 npm 模块“redis”,我对单个命令使用 utils promisify 没有问题。

现在我希望能够使用 .multi 和 .batch 方法。

这是我的一个辅助函数的示例,它使用 .batch 而不使用 promisify 和非 promisify 版本的命令。

没问题,但我很好奇是否可以将 promisify 与 .multi 或 .batch 一起使用

非常感谢,

0 投票
1 回答
71 浏览

javascript - Promisify Express response.render 方法

我需要创建一个渲染方法来将 html 块构建为字符串。它似乎有效,但我使用了臭名昭著的“新承诺”,我想知道我所做的是否正确:

谢谢!

0 投票
1 回答
517 浏览

node.js - 如何在钩子前在摩卡咖啡中使用 async/await?

我正在使用节点util.promisify尝试fs.readFile在辅助函数中等待结果,但是第二个 readFile 从未被调用,并且我总是遇到超时错误。

根据Mocha 文档和解释 promisify 实用程序功能的这篇博客文章,从我所看到的情况来看,我正在正确使用 await 。

超时错误是标准的“超时...确保完成()被调用或确保承诺解决”。我注意到如果第一个 readFile 正在读取 .dic 文件,控制台将输出“got dic data”,但如果交换 readFile 操作,控制台输出是“got aff data”。

这表明由于某种原因,只有第一个 readFile 正在执行,但我不知道为什么第一个 readFile 会阻止第二个读取文件被执行(因此 return 语句无法运行)。

谢谢你的时间。

0 投票
2 回答
1209 浏览

javascript - 当回调丢失时,`await promisify(setTimeout)(ms)` 是如何工作的?

对于 JavaScript 中的简单异步睡眠功能,await promisify(setTimeout)(ms)可以!

但是怎么做?论据看起来是错误的。

  • promisify传递一个错误回调,所以
  • setTimeout调用将是setTimeout(ms, errorCallback)

这不应该工作,但它确实有效。如何?



背景:await setTimeout(() => {}, 1000) 不起作用。这个单线await new Promise(resolve => setTimeout(resolve, 1000))对我不起作用(为什么?)。我们可以手动承诺它const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); await sleep(1000),但这是一个额外的功能。我们可以做得更好。

0 投票
1 回答
273 浏览

node.js - 如何将 HMSET 与节点 promisify 一起使用

我正在使用 node (TypeScript) 和 node-redis 库。由于我使用 TypeScript,因此我还导入了 @types/redis。

另外,我阅读了这篇关于如何为 TypeScript 使用 promisify redis 方法的文章:https ://flaviocopes.com/node-promisify/

我的问题是它适用于某些 redis 方法(如 GET、SET 等),但不适用于例如 HSET 或 HGETALL。

如果我查看类型建议,我发现关键方法实际上根本不是方法,而是属性(hset、HSET):

在此处输入图像描述

为什么会这样?我怎样才能访问那些需要的方法?

我想我在做一些明显错误的事情。有任何想法吗?

0 投票
1 回答
31 浏览

node.js - promisify 如何知道要返回哪个变量?

我在这个函数上使用了 util.promisify sqlite3

我的问题是,promisify 如何知道在第 7 行返回哪个变量(“err”或“row”)?