TypeError:“原始”参数必须是 Vue.js 应用程序中的函数类型
Posted
技术标签:
【中文标题】TypeError:“原始”参数必须是 Vue.js 应用程序中的函数类型【英文标题】:TypeError: The "original" argument must be of type Function in Vue.js application 【发布时间】:2022-01-10 14:39:56 【问题描述】:我试图在我的 Vue SPA 中使用“soap”模块调用一个肥皂网络服务,但我只是通过导入模块得到了这个错误。我已经搜索了很多,但没有找到解决方案。
我的代码:
// /src/services/soapService.js
import soap from 'soap';
var soapService =
users:
getAllUsers()
const url = 'http://127.0.0.2:8000/?wsdl'
soap.createClient(url, function(err, client)
client.getAllUsers(function(err, result)
console.log(result);
)
)
export default soapService;
然后我在一个 Vue 组件中调用我的函数:
<template>
<div></div>
</template>
<script>
import soapApi from '@/services/soapService'
export default
name: 'Users',
methods:
getAllUsers()
this.allUsers = soapApi.users.getAllUsers();
,
mounted()
this.getAllUsers();
</script>
当我尝试加载 Users.vue 组件时,我收到此错误:
TypeError: The "original" argument must be of type Function
at promisify (util.js?3022:602)
at eval (index.js?4f62:7)
at Object.../node_modules/get-stream/index.js (0.js:529)
at __webpack_require__ (app.js:854)
at fn (app.js:151)
at eval (client.js?e3c8:24)
at Object.../node_modules/soap/lib/client.js (0.js:586)
at __webpack_require__ (app.js:854)
at fn (app.js:151)
at Object.eval (soap.js?3fc0:19)
abort @ vue-router.esm.js?8c4f:2316
eval @ vue-router.esm.js?8c4f:2369
eval @ vue-router.esm.js?8c4f:2138
eval @ vue-router.esm.js?8c4f:2203
Promise.then (async)
eval @ vue-router.esm.js?8c4f:2150
eval @ vue-router.esm.js?8c4f:2171
eval @ vue-router.esm.js?8c4f:2171
flatMapComponents @ vue-router.esm.js?8c4f:2170
eval @ vue-router.esm.js?8c4f:2106
iterator @ vue-router.esm.js?8c4f:2362
step @ vue-router.esm.js?8c4f:2004
step @ vue-router.esm.js?8c4f:2008
step @ vue-router.esm.js?8c4f:2008
step @ vue-router.esm.js?8c4f:2008
runQueue @ vue-router.esm.js?8c4f:2012
confirmTransition @ vue-router.esm.js?8c4f:2392
transitionTo @ vue-router.esm.js?8c4f:2260
push @ vue-router.esm.js?8c4f:2715
push @ vue-router.esm.js?8c4f:3037
handler @ vue-router.esm.js?8c4f:1139
invokeWithErrorHandling @ vue.runtime.esm.js?2b0e:1863
invoker @ vue.runtime.esm.js?2b0e:2188
original._wrapper @ vue.runtime.esm.js?2b0e:6961
节点 v16.11.1 npm v8.1.3 Vue v2.6.11
【问题讨论】:
您是否将肥皂类型导入到您的项目中? 【参考方案1】:试试:
import createClient from 'soap';
【讨论】:
以上是关于TypeError:“原始”参数必须是 Vue.js 应用程序中的函数类型的主要内容,如果未能解决你的问题,请参考以下文章
TypeError('"listener" 参数必须是函数');
TypeError:函数中参数的数据位置必须是“内存”,但没有给出
LabelEncoder -- TypeError: 参数必须是字符串或数字
TypeError:int() 参数必须是字符串或数字,而不是 'datetime.datetime'
从 web3py 发送原始交易:TypeError: <lambda>() 缺少 4 个必需的位置参数:'hash'、'r'、's' 和 'v'