node.js - 无法读取未定义的属性 'catch'

标签 node.js promise

我尝试在 Node 中使用 Argon2 加密,但是当我尝试加密字符串时,出现此错误:

无法读取未定义的属性“catch”

我已尝试处理 argon2.hash 函数返回的 Promise 中的错误,但仍然不起作用。

这是我到目前为止的代码:

argon2.hash('password', {type: argon2.argon2id})
    .then(hash => {
        // do something with the hash
    }).catch(err => {
        // Handle the error
    });

有人可以帮我解决这个错误吗?

最佳答案

就我而言,我收到该错误消息是因为我

a) 监视某些异步方法

spyOn(sut,'myAsyncMethod')

b) 后来将 .catch() 附加到原始方法调用中,但忘记扩展 spy 以返回值/ promise 。

返回 spy 的 promise 解决了我的问题:

spyOn(sut,'myAsyncMethod').and.returnValue(new Promise(resolve=>resolve()));

关于node.js - 无法读取未定义的属性 'catch',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55669942/

相关文章:

node.js - Node Js - 如果连接中断,Mongoose find 不会抛出错误

reactjs - 在 React 中使用 Firebase Promise setState

javascript - 如何在单元测试中处理嵌套异步操作

javascript - 如何在ajax完成回调中返回promise?

javascript - 那么为什么不将 promise 传递给下一个呢?

node.js - 树莓派在线模拟器?

node.js - Angular6重命名要上传的文件

javascript - 访问node.js中另一个类的构造函数值

javascript - 如何根据前一个函数将 Promises 与第二个函数一起使用(解析 csv 文件,导入它,分批导入)?

javascript - 为什么我们将变量值括在括号中?