Skip to content

Instantly share code, notes, and snippets.

@uupaa
Last active June 26, 2016 06:55
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save uupaa/18b9a61b0520471b654e to your computer and use it in GitHub Desktop.
Save uupaa/18b9a61b0520471b654e to your computer and use it in GitHub Desktop.
非同期地獄はクローズしました

http://gao-tec.seesaa.net/article/427643074.html の記事を拝見して、

async function Main(){
    //実行時即表示
    console.log("a");
     
    //このawaitで2秒間待機してくれる(風に見せかけることが出来る)
    await new Promise((resolve)=>{
        setTimeout(resolve,2000);
    });
     
    //2秒後に表示
    console.log("b");
     
    //このawaitで1秒間待機してくれる(風に見せかけることが出来る)
    await new Promise((resolve)=>{
        setTimeout(resolve,1000);
    });
     
    //1秒後(実行から合計3秒後)に表示
    console.log("c");
}
 
Main();

最後の例( ↑ )は、Task.js だとこんな感じですね。

コメントが無くても "a > 2000 > b > 1000 > c" を見ればロジックを把握できると思います。

TaskMap("a > 2000 > b > 1000 > c", {
  a(task) { console.log("a"); task.pass(); },
  b(task) { console.log("b"); task.pass(); },
  c(task) { console.log("c"); task.pass(); },
}, () => {
  console.log("done");
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment