პრომისის სტატუსები JavaScript-ში
პრომისს შეიძლება ჰქონდეს ერთ-ერთი სამი სტატუსი. შექმნის დროს პრომისი არის მოლოდინის სტატუსში (pending), შემდეგ კი შეიძლება გახდეს შესრულებული (fulfilled), დაბრუნებული შედეგით, ან უარყოფილი (rejected), დაბრუნებული უარყოფის მიზეზით. თქვენ შეგიძლიათ დააკვირდეთ გადასვლას ერთი სტატუსიდან მეორეში, შემდეგი კოდის გაშვებით:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
let isError = false; // დაუყენეთ true ან false
if (!isError) {
resolve([1, 2, 3, 4, 5]);
} else {
reject('error in promise');
}
}, 3000);
});
setInterval(function() {
console.log(promise); // ყოველ წამში ვიღებთ პრომისს კონსოლში
}, 1000);
გაითვალისწინეთ, რომ სტატუსები fulfilled და rejected შეუცვლელია: თუ პრომისმა გადაინაცვლა ერთ-ერთ ამ სტატუსში, მაშინ ის ვეღარ გადავა სხვაში. მოდით შევხედოთ მაგალითს. შემდეგ კოდში reject-ის გამოძახება მოხდება ადრე, ამიტომ resolve-ის გამოძახება იქნება იგნორირებული:
let promise = new Promise(function(resolve, reject) {
setTimeout(() => reject(new Error('error')), 1000);
setTimeout(() => resolve('ignored'), 2000);
});
შექმენით პრომისი, რომელიც შესრულდება წარმატებით რაღაც დროში. გამოიტანეთ ის კონსოლში და შეისწავლეთ მისი საწყისი სტატუსი და დასრულებული სტატუსი.
შექმენით პრომისი, რომელიც შესრულდება წარუმატებლად რაღაც დროში. გამოიტანეთ ის კონსოლში და შეისწავლეთ მისი საწყისი სტატუსი და დასრულებული სტატუსი.