使函数在返回之前等待事件?
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 发生.
Its just a local experience. Note that while(!resume) won't work because that would prevent the event onSomething to happen.
推荐答案
所以,使用生成器,它看起来像这样:
So, with a generator it would look like so:
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 标准的一部分...
This however doesn't work beyond Firefox. It will become part of the ECMAScript standard in the next edition...
相关文章