Making a function to wait an event before returnin

2019-02-19 11:03发布

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

Its just a local experience. Note that while(!resume) won't work because that would prevent the event onSomething to happen.

3条回答
成全新的幸福
2楼-- · 2019-02-19 11:25

This is not possible.

Instead of waiting for the event, you want to put whatever you need to do when it happens into the onSomething function.

查看更多
smile是对你的礼貌
3楼-- · 2019-02-19 11:27

You have to switch your brains to thinking in events instead of the "traditional" programming flow. The way to do this is:

function myFunctionPart1() {
    doSomething();
}

function myFunctionPart2() {
    doSomethingElse();
}

myFunctionPart1();

onSomething = function() {
    myFunctionPart2();
}
查看更多
smile是对你的礼貌
4楼-- · 2019-02-19 11:28

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

Live demo: http://jsfiddle.net/MQ9PT/

This however doesn't work beyond Firefox. It will become part of the ECMAScript standard in the next edition...

查看更多
登录 后发表回答