在父函数中的ajax post后返回true或false
return true or false after ajax post in parent function?
我想在ajax调用后返回true或false:
function write_csv(data, path, file) {
$.ajax({
url: 'functions.php',
type: 'POST',
data: {
operation: 'SAVE_CSV',
save_path: path,
save_file: file,
save_string: data
},
success: function(result) {
console.log('write_file(' + path + file + '); -done');
return true; /* <-- */
}
});
}
我想要的用例:
function make_csv () {
/*
|
V
*/
if (write_csv(my_data, my_path, 'export.csv') == true) {
go_on();
}
function go_on() {
alert('YEAH!');
}
}
我知道这是异步的,但也许有人有另一个想法。我不会用if
之类的东西
你可以使用promise或回调来完成你想要的。
function write_csv(data, path, file, callback) {
$.ajax({
url: 'functions.php',
type: 'POST',
data: {
operation: 'SAVE_CSV',
save_path: path,
save_file: file,
save_string: data
},
success: function(result) {
console.log('write_file(' + path + file + '); -done');
callback(true); /* <-- */
}
});
}
:
function make_csv () {
/*
|
V
*/
function go_on() {
alert('YEAH!');
}
write_csv(my_data, my_path, 'export.csv', function(result) {
if (result == true) {
go_on();
}
});
}
我打算脱离jQuery惯例,给你一个"jQuery"的答案,因为这是你正在使用的。
在jQuery中,你可以在大多数jQuery方法中传入一个回调(一个在你正在使用的实际函数完成后"调用"的函数)。jQuery的约定是将回调作为传递给函数的最后一个参数。在您的示例中,您的write_csv()
函数看起来像这样,最后一个参数是一个额外的回调:
function write_csv(data, path, file, callback){
$.ajax({
url: 'functions.php',
type: 'POST',
data: {
operation: 'SAVE_CSV',
save_path: path,
save_file: file,
save_string: data
},
success: function(result) {
console.log('write_file(' + path + file + '); -done');
callback(true);
}
error: function(result){
console.log('async failed');
callback(false);
}
});
}
注意传递进来的error
键和$.ajax()
函数中对success
键所做的更改。
现在,当你想在if条件语句中使用async函数时,你可以使用
write_csv(my_data, my_path, 'export.csv', function(response){
if(response === true){
go_on()
}
else if(response === false){
// do something else
}
});
相关文章:
- 对于loop.if-仅在经过所有间隔后返回true
- 如果函数返回True,则显示Javascript按钮
- Javascript If else 只返回 TRUE 或只返回 FALSE
- 过滤器返回true或false
- 我对“;返回true"嵌套函数内部;t工作
- 如何在成功输入时使“返回TRUE”
- 检查一个元素是否有一个类与另一个类总是返回true
- JavaScript函数未返回true
- 如果URL中有任何字符串变体匹配,则返回true
- 如何使以下函数返回true或false
- 使用“in”关键字检查 0 始终返回 true
- hasOwnProperty 在对照父对象属性进行检查时返回 true
- 为什么 isNaN 总是返回 true
- _.数组中的每个查找值都返回 true 或 false.使用下划线 JS
- 错误地返回true
- 为什么asp:LinkButton服务器端事件没有'当clientClick返回true时,t激发
- 阻止表单提交 javascript 为什么有一个明显的错误语句返回 true
- Node js命令器args返回true而不是值
- 如何将html表单与php链接,以便在例如单击按钮时返回true
- 从OnClientClick调用函数时,在JavaScript中返回true