我可以通过回调添加 getJSON 的 done() 函数吗?
Can I add getJSON's done()-functions by callback?
在此代码上:
function hello(){
alert("hello");
}
function hi(){
alert("hi");
}
jQuery.getJSON('foo.bar',function(data){
if (data.foobar) {
this.done(hello);
}
alert('callback done');
}).done(hi);
并假设这个 returns 来自 foo.bar
{"foobar":true}
我喜欢按以下顺序接收警报:
- 回调完成
- 嗨
- 你好
但我无法在 success
-回调中添加 done()
-函数。
你有没有提示我如何在 success
-回调中添加一个 done()
-函数?
jqXHR
对象是回调函数的第三个参数:
jQuery.getJSON('foo.bar', function(data, textStatus, jqXHR) {
if (data.foobar) {
jqXHR.done(hello);
}
alert('calback done');
}).done(hi);
我认为您一开始就不应该尝试组合回调和 done()
处理程序,更不用说像这样将它们交织在一起了。只需使用一个 done()
处理程序:
jQuery.getJSON('foo.bar').done(function (data) {
hi();
if (data.foobar) {
hello();
}
});
或者如果您担心 hi()
中的失败会阻止其余部分的执行,您可以将它们分别传递给 done()
:
jQuery.getJSON('foo.bar').done(hi, function (data) {
if (data.foobar) {
hello();
}
});
在此代码上:
function hello(){
alert("hello");
}
function hi(){
alert("hi");
}
jQuery.getJSON('foo.bar',function(data){
if (data.foobar) {
this.done(hello);
}
alert('callback done');
}).done(hi);
并假设这个 returns 来自 foo.bar
{"foobar":true}
我喜欢按以下顺序接收警报:
- 回调完成
- 嗨
- 你好
但我无法在 success
-回调中添加 done()
-函数。
你有没有提示我如何在 success
-回调中添加一个 done()
-函数?
jqXHR
对象是回调函数的第三个参数:
jQuery.getJSON('foo.bar', function(data, textStatus, jqXHR) {
if (data.foobar) {
jqXHR.done(hello);
}
alert('calback done');
}).done(hi);
我认为您一开始就不应该尝试组合回调和 done()
处理程序,更不用说像这样将它们交织在一起了。只需使用一个 done()
处理程序:
jQuery.getJSON('foo.bar').done(function (data) {
hi();
if (data.foobar) {
hello();
}
});
或者如果您担心 hi()
中的失败会阻止其余部分的执行,您可以将它们分别传递给 done()
:
jQuery.getJSON('foo.bar').done(hi, function (data) {
if (data.foobar) {
hello();
}
});