Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Следующий шаг цикла только после нажатия на клавишу (https://javascript.ru/forum/misc/59393-sleduyushhijj-shag-cikla-tolko-posle-nazhatiya-na-klavishu.html)

RunkDowN 09.11.2015 13:05

Следующий шаг цикла только после нажатия на клавишу
 
Доброго дня. Имеется код:
SortAlgorithm.prototype.quickSortImpl = function(left, right) {
    var values = this.values;
    var middle = (left + right) / 2 | 0;
    var pivot = helper.median3(values[left], values[middle], values[right]);
    var l = left;
    var r = right;
    fun
    while(true) {
        while(values[l] < pivot) {
            this.highlight(l,r);
            l++;
        }
        while(pivot < values[r]) {
            this.highlight(l,r);
            r--;
        }
        if(r <= l) {
            break;
        }
        this.swap(l, r);
        l++;
        r--;
    }

    if(left < l - 1) {
        this.quickSortImpl(left, l - 1);
    }
    if(r + 1 < right) {
        this.quickSortImpl(r + 1, right);
    }
};

Возможно ли сделать так, что бы следующий шаг сортировки начинался только после нажатия клавиши на клавиатуре? Благодарю!

pnpquest 09.11.2015 15:55

Да, Вы можете использовать генераторы
<html>
<head>
</head>

<body>

<button id="resume">resume</button>


<script>


generator = function*(){
  var counter = 0
  while(true) yield alert(counter++)
}()

resume.onclick = function(){generator.next()}


</script>

</body>
</html>


Часовой пояс GMT +3, время: 02:20.