Sobes.tech

Frontend

Berilgan sinxron funktsiya va millisekundlarda vaqt. Bu funktsiyaning yangi versiyasini qaytarish kerak, uning bajarilishi belgilangan vaqt bilan cheklangan. Agar funktsiya belgilangan vaqt ichida bajarilsa, va'da olingan ma'lumotlar bilan hal qilinadi. Agar bajarilmasa, va'da 'time limit exceeded' satri bilan rad etiladi.

141

Birlashtirilgan obyektlarning prototiplariga yangi metodlar qo'shishda muammo bormi?

139

/** * Belirtilen millisekund kadar "uyuyan" ve sonra başarıyla tamamlanan bir asenkron fonksiyon yazmak gerekir * / function sleep(duration) { } // Misol const startTime = Date.now(); console.log("yotishga boshlash..."); sleep(2000).then(() => { console.log("2 sekunddan keyin uyg'ondi!"); console.log("O'tgan vaqt: ", Date.now() - startTime); }); sleep(1000).then(() => { console.log("1 sekunddan keyin uyg'ondi!"); console.log("O'tgan vaqt: ", Date.now() - startTime); });

139

runOnce yechimida apply usulining nima uchun kerak bo'lishi mumkin?

139

/** * sumPromises funktsiyasini amalga oshiring, bu * va'dalarni argument sifatida qabul qiladi va * ularning natijalarining yig'indisini qaytaradi. * * Funktsiya istalgan miqdordagi argumentlarni qabul qilishi mumkin. * Har qanday va'da API laridan foydalanish mumkin. */ // Kod bu yerda // Foydalanish misoli const promise1 = Promise.resolve(1); const promise2 = Promise.resolve(2); sumPromises(promise1, promise2).then(console.log); // 3

136

/* Тизимда тўлиқ рақамли қийматлар бўлган массивдаги барча рақамли қийматларни ҳисоблаш учун функция ёзиш керак. Мувофиқ рақамли қийматлар ҳамда бошланғич рақамлар билан бошланган сатрлар бўлиши мумкин, уларни рақамли қиймат сифатида ҳисоблаш керак. Массив ҳар қандай турдаги маълумотларни ўз ичига олиши мумкин ва тўғри бўлмаслиги мумкин. **Ички методлар, масалан, .flat, .flatMap, ишлатилмаслиги керак** */ function sum(arr) { // ... } console.log(sum([1, 'x', '2x', ['3', ['x2', '5']]]));

136

[ism] so'radi: O'yinchining MVP versiyasini amalga oshirish qancha vaqt oldi?

135

/** * `asyncAuth(callback)` funksiyasi callback qabul qiladi, unga * xato (birinchi argument) va ma'lumotlar * backenddan (ikkinchi argument) o'tkazilishi mumkin. * asyncAuth((error, data) => {}); * * Siz `auth()` funksiyasini amalga oshirishingiz kerak, * bu `asyncAuth()`ni chaqiradi, ammo Promise qaytaradi. * * @returns {Promise} */ function auth() { return new Promise((resolve, reject) => { asyncAuth((error, data) => { if (error) { reject(error) } else { resolve(data) } }); }) } /** * `tryAuth()` funksiyasi `auth()`ni ishlatadi va xato bo'lsa, * N qo'shimcha urinish qiladi. * Agar barcha urinishlar muvaffaqiyatsiz bo'lsa, oxirgi xatoni qaytaradi. * * @returns {Promise} */ function tryAuth(n) { }

135

/** * runOnce nomli qadoqlash funktsiyasini amalga oshiring, bu * funktsiya qabul qiladi va yangi funktsiya qaytaradi. Yangi * funktsiya faqat bir marta chaqirilishi mumkin, barcha keyingi * chaqiruvlar undefined qaytaradi. * * Qadoqlangan funktsiya argumentlarni qabul qilishi * va natijani qaytarishi mumkin. */ function runOnce(fn) { // sizning kodingiz } const logHello = (name) => { console.log(`salom, ${name}!`) }; const logHelloOnce = runOnce(logHello); console.clear(); logHelloOnce('Oleg'); // 'salom, Oleg!' logHelloOnce('Olga'); // undefined

134

Argumentsni eski usul bilan (ES5) massivga qanday aylantirish mumkin, Array.from va spread-operatorisiz?

132

/** * Uchta kod bo'limi berilgan. Har bir console.log natijasini yozish kerak. */ var n = 1; function F(n) { n = 3; } F(n); console.log(n); var obj = { a: 1 }; function F1(o) { o.a = 5; } F1(obj); console.log(obj); var obj = { a: 1 }; function F2(o) { o = { hello: 1 }; } F2(obj); console.log(obj);

131

Loyihada foydalanilgan arxitektura yondashuvlari haqida gapira olasizmi? Feature-Sliced Design (FSD) bilan tanishmisiz?

131

Yozilgan kodda ES6 standarti qanday yangiliklar ishlatilgan? arguments obyekti nima va u rest-parametrlaridan qanday farq qiladi?

130

[ism] so'radi: Xizmatlarning tezlik mezonlarini optimallashtirish ustida ishladingizmi?

128

[ism] so'radi: Bir muayyan vazifa ustida ish qanday umumiy tarzda tashkil etilgan edi: kim olib kelib tayyorlagan, qanday tasdiqlash jarayoni bo'lib o'tgan, amalga oshirish davomida qanday savollar yuzaga kelgan va ularni qanday hal qilgansiz?

128

[ism] so'radi: Siz o'zingiz pipeline'da qo'shimcha ishlar yozdingizmi?

128

Callback interfeysiga ega bo'lgan va Promise qaytaradigan asyncAuth funksiyasini amalga oshiring. Keyin, asyncAuth'dan foydalanadigan va xato bo'lsa, n qo'shimcha urinish qiladigan tryAuth(n) funksiyasini amalga oshiring. Agar barcha urinishlar muvaffaqiyatsiz bo'lsa, oxirgi xatoni qaytaradi.

128

/** * `asyncAuth(callback)` funksiyasi callback qabul qiladi, unda * xato (birinchi argument sifatida) va ma'lumotlar * backenddan (ikkinchi argument sifatida) o'tkazilishi mumkin. * asyncAuth((error, data) => {}); * * Siz `auth()` funksiyasini amalga oshirishingiz kerak, * bu `asyncAuth()`ni chaqiradi, ammo Promise qaytaradi. * * @returns {Promise} */ function auth() { // asyncAuth((error, data) => {}); } /** * `tryAuth()` funksiyasi `auth()`ni ishlatadi va xato bo'lsa, * N qo'shimcha urinish qiladi. * Agar barcha urinishlar muvaffaqiyatsiz bo'lsa, oxirgi xatoni qaytaradi. * * @returns {Promise} */ function tryAuth(n) { }

126

Agar funksiyaning muvaffaqiyatli bajarilishidan so'ng timeoutni tozalashni unutsangiz, nima bo'ladi? Buni qanday tuzatish mumkin va timeoutni har qanday holatda (muvaffaqiyat va xato) tozalash uchun qaysi va'da usuli mos keladi?

126

withTimeout funksiyasini amalga oshiring, u funksiyani va vaqtni (millisekundlarda) qabul qiladi va yangi funksiyani qaytaradi. Agar asl funksiya belgilangan vaqt ichida bajarilmasa, va'da rad etilishi kerak.

126
/7