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事件发生。
答案 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标准的一部分......