在返回之前制作一个等待事件的功能?

时间:2011-11-06 13:45:58

标签: javascript events function return wait

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?
}

它只是一种本地体验。请注意,虽然(!resume)不起作用,因为这会阻止onSomething事件发生。

3 个答案:

答案 0 :(得分:5)

这是不可能的。

您不想等待事件,而是希望在onSomething函数中发生任何需要执行的操作。

答案 1 :(得分:4)

你必须把你的大脑转向思考事件,而不是“传统的”编程流程。这样做的方法是:

function myFunctionPart1() {
    doSomething();
}

function myFunctionPart2() {
    doSomethingElse();
}

myFunctionPart1();

onSomething = function() {
    myFunctionPart2();
}

答案 2 :(得分:2)

所以,使用生成器它会是这样的:

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标准的一部分......