我有以下代码:
var someFunction = {
option01 : function($el){
$el.css('color', 'red');
},
option02 : function($el){
$el.css('background-color', 'blue');
}
}
var my_div = $('.my_div');
someFunction.option01(my_div).promise().done(function() {
console.log('option01 done');
someFunction.option02(my_div);
});
我正在尝试达到一些Promise依赖性,但是关于此代码,我有一个错误,即:Uncaught TypeError: Cannot read property 'promise' of undefined
。有人可以帮忙吗?
这没有任何意义。
首先,.promise()
是jQuery对象的方法,但option01
不返回jQuery对象(实际上,它不返回任何内容)。如果您想option01
返回$el
,请执行以下操作:
option01 : function($el){
$el.css('color', 'red');
return $el;
}
或者,由于.css
是可链接的:
option01 : function($el){
return $el.css('color', 'red');
}
更重要的是,我不明白为什么你需要承诺在所有。当函数开始某些会在稍后产生结果的东西时,承诺是有帮助的。例如,当一个函数开始动画或AJAX请求时,它可以返回该动画/ AJAX完成时的承诺。
option01
不会做任何长时间运行的操作(例如动画或AJAX请求)。该.css
呼叫立即生效,他们一旦他们返回来完成。因此,当option01
返回时,它就完成了...因此,您可以执行以下操作:
someFunction.option01(my_div);
someFunction.option02(my_div);
我只是不确定您要在这里实现什么。您的示例代码是否足以代表这些功能应实际执行的操作?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句