JavaScript-da Ýeňilliklerde Istiýsarly Ýagdaýlar
Indi ýeňilligiň içinde ýüze çykan ýörite ýagdaýlary nädip işlemelidigini öwreneli. Şeýle bir ýagdaý ýüze çykanda, biz ýeňilligi, ýeňillik funksiýasynyň ikinji parametrine awtomatik giriş edýän ýörite ýatyrmak funksiýasy arkaly ýatyrmaly:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
...
}, 3000);
});
Ýeňillik funksiýasynyň içinde biz,
eýýäm bolan bolsa, <resolve> çagyrmaly,
ýa-da ýörite ýagdaý ýüze çyksa,
reject çagyrmaly:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
let isError = false;
if (!isError) {
resolve([1, 2, 3, 4, 5]); // ýeňilligiň maglumatlary
} else {
reject('ýeňilikde ýalňyşlyk'); // siziň ýalňyşlyk tekstiňiz
}
}, 3000);
});
Soňra then metodunda bir däl, iki
funksiýany parametr hökmünde geçirmeli:
birinjisi, ýeňillik ýörite ýagdaýsyz işläninde
(rezedewlenende) işleýär,
ikinjisi bolsa, ýalňyşlyk bilen işläninde
(reýektirlenende) işleýär:
promise.then(
function(result) {
console.log(result); // ýeňilligiň netijesini görkezer
},
function(error) {
console.log(error); // ýalňyşlyk tekstini görkezer
}
);
Köpçülikleýin, ýokarda görkezilen kod has gysgaça şeýle ýazylýar:
promise.then(function(result) {
console.log(result); // ýeňilligiň netijesini görkezer
}, function(error) {
console.log(error); // ýalňyşlyk tekstini görkezer
});
0-dan 5-a çenli
töwerek sanlar döredýän asinkron kod ýazyň.
Munyň hemmesini ýeňillige öwüriň. Ýeňillik öz netijesi hökmünde
bir sany döredilen sana bölünişigiň netijesini gaýtarsyn.
Ýeňillik nola bölünende ýalňyşlyk bilen,
ýöne beýleki ähli ýagdaýlarda üstünlik bilen ýerine ýetirilsin.