Как в данном случаи задать setTimeout?
Помогите разобраться со следующей задачей: "Необходимо установить timeout в данный запрос, чтобы при успешном выполнении, функция successCallback(data) выполнилась через минуту".
Возможно ли такое реализовать?
function SaveStopToServer(applicantName, successCallback, errorCallback) {
$.post('@Url.Action(nameof(...), "...")', { applicantName: applicantName })
.done(function (data, textStatus, jqXHR) {
if (typeof successCallback === 'function') {
successCallback(data);
}
if (callReceivingMode) {
window.location.href = "@DefaultSrc(false)";
}
//return;
})
.fail(function (jqXHR, textStatus, errorThrown) {
if (typeof errorCallback === 'function')
errorCallback(jqXHR);
if (callReceivingMode) {
window.location.href = "@DefaultSrc(false)";
}
});
};
я пробовал так, то это не помогло
setTimeout(successCallback, 60000, data)
EDIT_1
В done попадаю, в if (typeof successCallback === 'function') тоже, в консоли ошибок нет, successCallback - это функция (функционал к сожалению показать не могу), в data ошибок также нет
Ответы (1 шт):
Автор решения: Qwertiy
→ Ссылка
setTimeout(successCallback, 60000, data)
Это должно работать.
Другой вариант - обернуть весь коллбэк:
function SaveStopToServer(applicantName, successCallback, errorCallback) {
$.post('@Url.Action(nameof(...), "...")', { applicantName: applicantName })
.done(function (data, textStatus, jqXHR) {
setTimeout(function () {
if (typeof successCallback === 'function') {
successCallback(data);
}
if (callReceivingMode) {
window.location.href = "@DefaultSrc(false)";
}
}, 60000);
})
.fail(function (jqXHR, textStatus, errorThrown) {
if (typeof errorCallback === 'function')
errorCallback(jqXHR);
if (callReceivingMode) {
window.location.href = "@DefaultSrc(false)";
}
});
}