微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

node-soap - TypeError:回调不是函数

如何解决node-soap - TypeError:回调不是函数

在 NodeJS 中的 node-soap 客户端上调用 SOAP 方法时,我收到以下通用 TypeScript 错误。我该如何解决

示例代码

const [result] = await mySoapClient.Perform_Operation({ ... })

错误

TypeError: callback is not a function
    at /Users/nick/node_modules/soap/lib/client.js:203:17
    at parseSync (/Users/nick/node_modules/soap/lib/client.js:305:24)
    at /Users/nick/node_modules/soap/lib/client.js:466:24
    at Request._callback (/Users/nick/node_modules/soap/lib/http.js:171:17)
    at Request.self.callback (/Users/nick/node_modules/request/request.js:185:22)
    at Request.emit (events.js:223:5)
    at Request.EventEmitter.emit (domain.js:475:20)
    at Request.<anonymous> (/Users/nick/node_modules/request/request.js:1154:10)
    at Request.emit (events.js:223:5)
    at Request.EventEmitter.emit (domain.js:475:20)
    at IncomingMessage.<anonymous> (/Users/nick/node_modules/request/request.js:1076:12)
    at Object.onceWrapper (events.js:312:28)
    at IncomingMessage.emit (events.js:228:7)
    at IncomingMessage.EventEmitter.emit (domain.js:475:20)
    at endReadableNT (_stream_readable.js:1185:12)
    at processticksAndRejections (internal/process/task_queues.js:81:21)

解决方法

问题是 node-soap 有两种方法名称变体(我假设它是动态生成的)。

Client.method(args,callback,options) - SOAP 服务上的调用方法 ** 期望回调函数 **

Client.methodAsync(args,options) - 在 SOAP 服务上调用方法。 ** 回报承诺 **

显然我使用了错误的方法签名,需要附加一个 Async

即而不是...

const [result] = await mySoapClient.Perform_Operation({ ... })

我需要将单词 Async 附加到方法中。例如

const [result] = await mySoapClient.Perform_OperationAsync({ ... })

所有陷阱之母。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。