Создание функции для ожидания события перед возвратом? - PullRequest
2 голосов
/ 06 ноября 2011
function myFunction() {
    wait(); //what I put there?
    return;
}

myFunction(); 

//this is an event; when its triggered I want function to resume
onSomething = function() {
    myFunction.resume(); //what I put there?
}

Это просто местный опыт.Обратите внимание, что while (! Resume) не будет работать, потому что это предотвратит событие onSomething.

Ответы [ 3 ]

5 голосов
/ 06 ноября 2011

Это невозможно.

Вместо ожидания события вы хотите поместить все, что нужно, когда это происходит, в функцию onSomething.

4 голосов
/ 06 ноября 2011

Вы должны переключить свой мозг на размышление о событиях вместо «традиционного» процесса программированияСпособ сделать это:

function myFunctionPart1() {
    doSomething();
}

function myFunctionPart2() {
    doSomethingElse();
}

myFunctionPart1();

onSomething = function() {
    myFunctionPart2();
}
2 голосов
/ 06 ноября 2011

Итак, с генератором это будет выглядеть так:

function test() {
    // first part of function
    yield;
    // second part of function
    yield;
}

var gen = test(); // creating a generator

gen.next(); // execute first part

button.onclick = function () {
    gen.next(); // execute second part on button click
};

Живая демоверсия: http://jsfiddle.net/MQ9PT/

Это, однако, не работает за пределами Firefox. Он станет частью стандарта ECMAScript в следующем издании ...

...