Callback after $.get?
Callback after $.get?
我有一个javascript函数foo。我希望在foo完成时调用bar。我试过把它作为回拨。它不起作用。当foo仍在执行$.get(在服务器上启动一个很长的python例程)时,Bar被调用。
function foo(callback){
$.get(
url="/myurl",
data={key:($(this).attr('data-button'))},
function(returndata) {
var array = eval(returndata);
drawTable(array);
});
callback();
}
foo(bar);
然而,这是有效的。我很困惑为什么。。。
function foo(callback){
$.get(
url="/myurl",
data={key:($(this).attr('data-button'))},
function(returndata) {
var array = eval(returndata);
drawTable(array);
callback();
});
}
foo(bar);
This is a shorthand Ajax function, which is equivalent to:
$.ajax({
url: url,
data: data,
success: success,
dataType: dataType
});
你可以把它想象成在一个单独的线程中运行。所以bar()不会充当回调函数。但在第二个例子中,"function(returndata)"是$.get的回调函数,因此在里面给定bar()将完成任务,因为现在bar()只会在$.get完成后调用。
它在第二种情况下起作用,因为一旦响应到来,就会调用"bar()"。现在回到回调,编写回调的简单概念如下:
function func1(callback) {
alert('func1');
callback();
}
function func2() {
alert('func2');
}
func1(func2);
因此,在您的情况下,理想情况下应该这样做:
function foo(callback) {
$.get(
url = "/myurl",
data = {
key: ($(this).attr('data-button'))
},
function(returndata) {
var array = eval(returndata);
drawTable(array);
callback.call();
});
}
function bar() {
//todo
}
foo(bar);
相关文章:
- 有没有一种方法可以防止img get请求使用css或js发生
- CORS-重定向到第二个GET正在接收的页面
- missing ) after argument list DATEDIF
- jQuery Ajax GET请求工作不正常
- 如何将PHP get查询转换为Meteor's HTTP.get()
- 返回/从Twit's客户端.get
- AngularJS错误:提供程序必须从$get工厂方法返回值
- 如何在router.get()方法中传递url作为参数
- 使用Javascript/JQuery获取JSON GET数据
- 如何使用php文件中的GET来获取我在.js文件中声明的变量
- Get方法获取csv文件的内容
- 什么'$.get和$.ajax之间的区别是什么
- I'我得到这个.get()在ember中未定义
- Babel编译错误:找不到模块核心js/library/fn/get迭代器
- Datatable get列值只给出前10行
- Angularjs http.get() Cross-Origin 请求被阻止
- Callback after $.get?
- Jquery - get选择器时使用after
- JS error after AJAX get/load
- JQuery after AJAX GET