使函数在返回之前等待事件?

2022-01-19 00:00:00 function return events wait javascript
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...

相关文章