我想从我的请求“instance.web.Model”获取结果,然后调用 this.super()。问题是“instance.web.Model”是异步的,所以在我的例子中, super() 将在请求完成之前被调用。
MyObject.extend({
init: function(parent, data){
var newData = instance.web.Model('advanced.search')
.call('check_duplication', [data]).done(function (name) {
// do stuff
return name
});
data = newData;
this._super.apply(this, arguments);
// super is called before my request is done so the new data are not sent to super.
}
});
Run Code Online (Sandbox Code Playgroud)
你知道如何度过这个难关吗?为了将 newData 而不是 data 作为参数传递给超级对象。
PS:我试图将其封装在 self 中: var self = this; 但它不起作用,因为我扩展的父对象似乎继续运行而无需等待。所以我得到了像“self.super(...不是一个函数”这样的错误。
MyObject.extend({
init: function(parent, data){
var self = this;
var newData = instance.web.Model('advanced.search')
.call('check_duplication', [data]).done(function (name) {
// do stuff
var …Run Code Online (Sandbox Code Playgroud)