Два кодовых блока не сравнимы. В саге Redux вы приостанавливаете выполнение в двух точках (доходность), что означает, что может потребоваться любое количество времени в зависимости от запуска других генераторов (саг), чтобы вернуть управление обратно приостановленному генератору. После того как вы yield
решите, сколько времени потребляет события yielded
, решить, следует ли и когда продолжать потреблять от генератора, 5-секундная задержка предполагает, что большому количеству другого кода был отдан приоритет.
Кроме того, yield delay(200)
, конечно, заставит вашу сагу занять больше времени, чем 5 мс.
Такое поведение генераторов является причиной того, что в саге Redux вы действительно нигде не должны иметь блокирующий код.
А также appendChild
, узлы DOM имеют метод insertBefore
container.insertBefore(newFreeformLabel, container.firstChild);
container.
insert({
// key is position
// 'before', 'after', 'top' and 'bottom' are allowed
top: new Element('label').
update('Omschrijving:')
}).
insert({
top: new Element('input').
addClassName('textfield').
writeAttribute('name', 'factuur_orderregel[]')
}).
insert({
top: new Element('div').
addClassName('spacer')
});
я думаю, что Прототип Element.insert
является несколько неловким для before
/ after
, как бы то ни было. Например, если бы Вы хотели поместить .spacer
перед эти .textfield
, когда-то позже в Вашем коде, то необходимо было бы сделать что-то как:
container.
down('.textfield').
insert({
before: new Element('div').
addClassName('spacer')
});
Это, особенно если Вы являетесь знакомыми с API DOM Element.insertBefore
, несколько необладающими интуицией, как Вы не вставка .spacer
в эти .textfield
, но вместо этого в container
, прежде .textfield
.