【发布时间】:2021-02-25 03:38:24
【问题描述】:
我有一个像这样的 vuex 动作
myAction() {
const deferred = $.Deferred();
setTimeout(() => deferred.resolve(), 3000);
return deferred.promise();
}
在我的 vue 组件中
myMethod() {
this.myAction().fail(() => ...do something...);
}
抛出错误:
未捕获的类型错误:this.myAction(...).fail 不是函数
代码运行良好,但是一旦我更新了我的 npm 模块/vue-cli/webpack 等,问题就出现了。另一点是,如果我将 .fail 更改为 .catch,那么它运行正常。但问题是为什么.fail 不起作用?
【问题讨论】:
-
如果
myAction未能显式返回 jQuery 承诺(它将返回隐式包装承诺),您所描述的将会发生。您是否测试了上面的简化示例并且仍然得到错误?只是想知道您的实际操作是否与示例足够不同。 -
这正是我尝试过的,this.myAction().catch(...) 有效,但 this.myAction().fail 无效
-
我正在使用 vuex 3.4.0
标签: jquery vue.js vuejs2 vuex jquery-deferred