Size: a a a

JS Liberty [ОЫ]

2020 October 16

DE

Denis Efremov in JS Liberty [ОЫ]
persona x grata
Какие типичные задачи по массивам и типам данных дают на собесах?
На преобразование данных из одной структуры в другую
источник

p

persona x grata in JS Liberty [ОЫ]
Denis Efremov
На преобразование данных из одной структуры в другую
У тебя есть условие самой сложной задачи?
источник

p

persona x grata in JS Liberty [ОЫ]
источник

p

persona x grata in JS Liberty [ОЫ]
Сложнее, чем там
источник

DE

Denis Efremov in JS Liberty [ОЫ]
Ну проще или сложнее, зависит от того, на кого ты претендуешь. Вряд ли сеньорам вообще подобные вопросы задают. Меня помню просили написать свою реализацию промиса
источник

p

persona x grata in JS Liberty [ОЫ]
Denis Efremov
Ну проще или сложнее, зависит от того, на кого ты претендуешь. Вряд ли сеньорам вообще подобные вопросы задают. Меня помню просили написать свою реализацию промиса
Промис написать сложно. Ты написал также все методы then, resolve, reject?
источник

p

persona x grata in JS Liberty [ОЫ]
Смотрю исходники полифила для промиса
https://github.com/stefanpenner/es6-promise/tree/master/lib/es6-promise
источник

DE

Denis Efremov in JS Liberty [ОЫ]
persona x grata
Промис написать сложно. Ты написал также все методы then, resolve, reject?
Написал, но не на том собеседовании. Я честно, не был готов к такому повороту в тот момент
источник

DE

Denis Efremov in JS Liberty [ОЫ]
Надо ещё разок написать, уже смутно помнится
источник

p

persona x grata in JS Liberty [ОЫ]
const states = {
   pending: 'Pending',
   resolved: 'Resolved',
   rejected: 'Rejected'
};

class Nancy {
   constructor(executor) {
       const tryCall = callback => Nancy.try(() => callback(this.value));
       const laterCalls = [];
       const callLater = getMember => callback => new Nancy(resolve => laterCalls.push(() => resolve(getMember()(callback))));
       const members = {
           [states.resolved]: {
               state: states.resolved,
               then: tryCall,
               catch: _ => this
           },
           [states.rejected]: {
               state: states.rejected,
               then: _ => this,
               catch: tryCall
           },
           [states.pending]: {
               state: states.pending,
               then: callLater(() => this.then),
               catch: callLater(() => this.catch)
           }
       };
       const changeState = state => Object.assign(this, members[state]);
       const apply = (value, state) => {
           if (this.state === states.pending) {
               this.value = value;
               changeState(state);
               for (const laterCall of laterCalls) {
                   laterCall();
               }
           }
       };

       const getCallback = state => value => {
           if (value instanceof Nancy && state === states.resolved) {
               value.then(value => apply(value, states.resolved));
               value.catch(value => apply(value, states.rejected));
           } else {
               apply(value, state);
           }
       };

       const resolve = getCallback(states.resolved);
       const reject = getCallback(states.rejected);
       changeState(states.pending);
       try {
           executor(resolve, reject);
       } catch (error) {
           reject(error);
       }
   }

   static resolve(value) {
       return new Nancy(resolve => resolve(value));
   }

   static reject(value) {
       return new Nancy((_, reject) => reject(value));
   }

   static try(callback) {
       return new Nancy(resolve => resolve(callback()));
   }
}
источник

S

Syntax Highlight Bot in JS Liberty [ОЫ]
persona x grata
const states = {
   pending: 'Pending',
   resolved: 'Resolved',
   rejected: 'Rejected'
};

class Nancy {
   constructor(executor) {
       const tryCall = callback => Nancy.try(() => callback(this.value));
       const laterCalls = [];
       const callLater = getMember => callback => new Nancy(resolve => laterCalls.push(() => resolve(getMember()(callback))));
       const members = {
           [states.resolved]: {
               state: states.resolved,
               then: tryCall,
               catch: _ => this
           },
           [states.rejected]: {
               state: states.rejected,
               then: _ => this,
               catch: tryCall
           },
           [states.pending]: {
               state: states.pending,
               then: callLater(() => this.then),
               catch: callLater(() => this.catch)
           }
       };
       const changeState = state => Object.assign(this, members[state]);
       const apply = (value, state) => {
           if (this.state === states.pending) {
               this.value = value;
               changeState(state);
               for (const laterCall of laterCalls) {
                   laterCall();
               }
           }
       };

       const getCallback = state => value => {
           if (value instanceof Nancy && state === states.resolved) {
               value.then(value => apply(value, states.resolved));
               value.catch(value => apply(value, states.rejected));
           } else {
               apply(value, state);
           }
       };

       const resolve = getCallback(states.resolved);
       const reject = getCallback(states.rejected);
       changeState(states.pending);
       try {
           executor(resolve, reject);
       } catch (error) {
           reject(error);
       }
   }

   static resolve(value) {
       return new Nancy(resolve => resolve(value));
   }

   static reject(value) {
       return new Nancy((_, reject) => reject(value));
   }

   static try(callback) {
       return new Nancy(resolve => resolve(callback()));
   }
}
источник

p

persona x grata in JS Liberty [ОЫ]
Denis Efremov
Написал, но не на том собеседовании. Я честно, не был готов к такому повороту в тот момент
Покажешь, что получится
источник

DE

Denis Efremov in JS Liberty [ОЫ]
persona x grata
Покажешь, что получится
Напишу заново и покажу. Позже
источник

p

persona x grata in JS Liberty [ОЫ]
блин пора походу сносить эту виндоз. дали проект на Реакт-нейтив. не могу запустить в Андроид студио. Всякие варианты пробовал, под доке РН устанавливал, потом по стак оверфлоу попробовал все советы попробовать разные версии SDK. Из терминала делаю sdkmanager —licenses, пишет, что лицензии приняты, но в андроид студио ошибка
источник

p

persona x grata in JS Liberty [ОЫ]
источник

p

persona x grata in JS Liberty [ОЫ]
Denis Efremov
Напишу заново и покажу. Позже
У тебя Линукс Манжаро? Самая надежная считается?
источник

DE

Denis Efremov in JS Liberty [ОЫ]
persona x grata
У тебя Линукс Манжаро? Самая надежная считается?
У меня да. Надежная в смысле?
источник

CM

Chingiz Mamiyev in JS Liberty [ОЫ]
persona x grata
У тебя Линукс Манжаро? Самая надежная считается?
Манжара же на базе arch.Как может быть надёжным?🤔
источник

CM

Chingiz Mamiyev in JS Liberty [ОЫ]
Denis Efremov
У меня да. Надежная в смысле?
Никаких глюков с ui нет?
источник

DE

Denis Efremov in JS Liberty [ОЫ]
Chingiz Mamiyev
Манжара же на базе arch.Как может быть надёжным?🤔
Во во )))
источник