这是我的vue.js函数,它调用python API。问题出在等待上
async getLinearSolver() {
const path = '/api/nutritional_constraints_1';
var vm = this
var json = await this.formatDataForPulp()
axios.post(path,json )
.then((res) => {
console.log(res)
vm.linear_result = "Write my res data "
})
.catch((error) => {
console.error(error);
});
}
console.log(res)
可以:
Object { data: {…}, status: 200, statusText: "OK", headers: {…}, config: {…}, request: XMLHttpRequest }
但无法进行模板修改,无法将任何变量分配给vm.linear_result
vm.linear_result = "Write my res data "
不起作用
:
[Vue warn]: Error in render: "Error: Cannot find module './undefined'"
found in
---> <NutritionalConstraints> at src/components/NutritionalConstraints.vue
<App> at src/App.vue
<Root> vue.runtime.esm.js:619
Error: Cannot find module './undefined'
webpackContextResolve .*$:51
webpackContext .*$:45
render NutritionalConstraints.vue:216
renderList VueJS
render NutritionalConstraints.vue:165
VueJS 14
_callee$/< NutritionalConstraints.vue:235
promise callback*_callee$ NutritionalConstraints.vue:220
Babel 11
onSubmit NutritionalConstraints.vue:290
VueJS 21
vue.runtime.esm.js:1888
请帮助我,我真的不知道该怎么办。
我有一个类似的查询,没有外部AWAIT函数,它运行完美。
这是一个导致相同问题的简单示例:
async getLinearSolver() {
const path = '/api/nutritional_constraints_1';
var vm = this
this.formatDataForPulp().then((res) => {
console.log(res) // Working
vm.a_template_variable ="Write my res data "// Not working !
})
}
答案 0 :(得分:-1)
最后发现了问题。
我需要在我的formatDataForPulp()函数内部深度克隆一些json数组。 像这样:
var data = {
"items": JSON.parse(JSON.stringify(this.items)), // WE need to do a deep clone otherwize it crashes vue.js
"constraints": JSON.parse(JSON.stringify(this.constraints)) // WE need to do a deep clone otherwize it crashes vue.js
}
我以前没有这样做,所以vue.js在我的formatDataForPulp()函数期间修改了我的双向绑定数据,然后vue.js崩溃了!问题不是来自ASYNC系统。