Во-первых, setTimeout()
не работает, потому что вы помещаете его в функцию обратного вызова, что означает, что он будет выполнен, когда запрос уже выполнен.В любом случае, это неправильный способ решения такой задачи, вы должны поместить второй запрос в обратный вызов первого, чтобы он выполнялся по завершении первого.
Код выглядит следующим образом:
$('#sub').click(function() {
var data = $("input#dataInput").val();
console.log(data);
var total = $("input#totalInput").val();
var subscriber_id = $("input#subscriber_id").val();
var res_name = $("input#res_name").val();
var dataString = 'data=' + data + '&total=' + total + '&subscriber_id=' + subscriber_id + '&res_name=' + res_name;
console.log(dataString);
$.ajax({
type: "POST",
url: "result.php",
data: dataString,
success: function(data) {
console.log(data);
if (data === 'success') {
//localStorage.clear();
MessengerExtensions.requestCloseBrowser(function success() {
console.log("Webview closing");
}, function error(err) {
console.log(err);
});
$.ajax({
type: "POST",
url: "result_flow.php",
data: dataString,
success: function(data) {
console.log(data);
}
});
}
}
});
}
Обратите внимание, что в моем коде второй запрос отправляется только в том случае, если первый запрос выполнен успешно, поскольку он помещен в оператор if (data === 'success') {...}
.