Söz, tabiri caizse bir operasyonun "nihai" sonuçlarını temsil eden bir "şey" dir. Burada dikkat edilmesi gereken nokta, bir şeyin ne zaman gerçekleştiğinin ayrıntılarını soyutlaması ve bir şey olduktan sonra ne olması gerektiğine odaklanmanıza izin vermesidir . Bu, temiz, bakımı yapılabilir bir kodla sonuçlanacaktır; burada bir geri arama içindeki bir geri arama içinde geri arama yapmak yerine, kodunuz aşağıdaki gibi görünecektir:
var request = new Promise(function(resolve, reject) {
});
request.then(function successHandler(result) {
}, function failureHandler(error) {
});
Sözlerin özellikleri, bir sözün
then
yöntem, verilen successHandler veya failHandler geri araması bittiğinde yerine getirilen yeni bir söz döndürmelidir. Bu, gerçekleştirilmesi gereken bir dizi eşzamansız göreviniz olduğunda vaatleri birbirine zincirleyebileceğiniz ve işlemlerin sıralanmasının, geri aramaları kullanmışsınız gibi garanti edildiği anlamına gelir. Bu nedenle, bir geri arama içindeki geri aramada bir geri aramayı iletmek yerine, zincirleme sözler içeren kod şu şekilde görünür:
var doStuff = firstAsyncFunction(url) {
return new Promise(function(resolve, reject) {
$.ajax({
url: url,
success: function(data) {
resolve(data);
},
error: function(err) {
reject(err);
}
});
};
doStuff
.then(secondAsyncFunction)
.then(thirdAsyncFunction);
Sözler ve neden süper havalı oldukları hakkında daha fazla bilgi edinmek için Domenic'in bloguna bakın: http://domenic.me/2012/10/14/youre-missing-the-point-of-promises/