Řekněme, že máte volání AJAX a nějakou další funkci, která závisí na načtení volání AJAX před jeho spuštěním.
Zde je funkce AJAX.
function doTheThing() {
$.ajax({
url: window.location.href,
type: 'POST',
data: {
key: 'value',
},
success: function (data) {
console.log(data)
},
error: function (error) {
console.log(error)
},
})
}
A můžete zavolat dvě funkce za sebou a zjistit, že druhá funkce nefunguje, protože závisí na první.
doTheThing()
doSomethingElse()
Můžeme to rychle a snadno přepsat pomocí Promise
function doTheThing() {
return new Promise((resolve, reject) => {
$.ajax({
url: window.location.href,
type: 'POST',
data: {
key: 'value',
},
success: function (data) {
resolve(data)
},
error: function (error) {
reject(error)
},
})
})
}
Nyní můžeme provést volání AJAX, spustit funkci úspěchu a navázat na ni další kód.
doTheThing()
.then((data) => {
console.log(data)
doSomethingElse()
})
.catch((error) => {
console.log(error)
})
A je to!