Функция генератора необходима, когда государство является неуместным?

В приведенном ниже примере generatorфункция используется для создания уникального идентификатора.

Фрагмент кода происходит из следующего сообщения среды: function * UUIDGenerator () { let d , r ; while ( true ) { yield 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx' . replace ( / [xy] / g , function ( c ) { r = ( new Date (). getTime () + Math . random () * 16 ) % 16 | 0 ; d = Math . этаж ( d / 16 ); return ( c == 'x' ? r : ( r & 0x3 | 0x8 )). toString ( 16 ); }); } }; let myGen = UUIDGenerator (); консоль . log ( myGen . next ()); -yield-next-async-await-e428b0cb52e4 "rel =" nofollow noreferrer "> Источник

generator

ВОПРОС 1

Какой смысл использовать generatorв этом фрагменте? Коду не нужно запоминать какое-либо состояние между каждым вызовом. Поэтому не может ли мы использовать обычный объект функции?

ВОПРОС 2

Iterables(например generators) нужны только тогда, когда нам нужно iterator object, чтобы перебирать последовательность, запоминая состояние между каждым вызовом? Если нам не нужно помнить о состоянии, iterableнет необходимости в праве?

ВОПРОС 3

Боковой вопрос: ESLintжалуется при использовании функций внутри циклов. generatorsКак видно, такая картина очень типична . Как это чаще всего решается?

function UUIDGenerator() {
  let d, r;
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
    let r = (new Date().getTime() + Math.random() * 16) % 16 | 0;
    let d = Math.floor(d / 16);
    return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);
  });
};

console.log(UUIDGenerator());

javascript,ecmascript-6,eslint,iterable,

0

Ответов: 0

Функция генератора необходима, когда государство является неуместным?

В приведенном ниже примере generatorфункция используется для создания уникального идентификатора.

Фрагмент кода происходит из следующего сообщения среды: function * UUIDGenerator () { let d , r ; while ( true ) { yield 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx' . replace ( / [xy] / g , function ( c ) { r = ( new Date (). getTime () + Math . random () * 16 ) % 16 | 0 ; d = Math . floor ( d / 16 ); return ( c == 'x' ? r : ( r & 0x3 | 0x8 )). toString ( 16 ); }); } }; let myGen = UUIDGenerator (); консоль . log ( myGen . next ()); -yield-next-async-await-e428b0cb52e4 "rel =" nofollow noreferrer "> Источник

generator

ВОПРОС 1

Какой смысл использовать generatorв этом фрагменте? Коду не нужно запоминать какое-либо состояние между каждым вызовом. Поэтому не может ли мы использовать обычный объект функции?

ВОПРОС 2

Iterables(например generators) нужны только тогда, когда нам нужно iterator object, чтобы перебирать последовательность, запоминая состояние между каждым вызовом? Если нам не нужно помнить о состоянии, iterableнет необходимости в праве?

ВОПРОС 3

Боковой вопрос: ESLintжалуется при использовании функций внутри циклов. generatorsКак видно, такая картина очень типична . Как это чаще всего решается?

function UUIDGenerator() {
  let d, r;
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
    let r = (new Date().getTime() + Math.random() * 16) % 16 | 0;
    let d = Math.floor(d / 16);
    return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);
  });
};

console.log(UUIDGenerator());

00JavaScript, ECMAScript-6, eslint, итерация,
Похожие вопросы
Яндекс.Метрика