News for hackers. Stuff that matters.
Re:Show HN: Nsynjs – JS engine with stoppable threads and wi... by sametmax on Wednesday May 24, 2017 @01:59AM (#14407882)
If you have callbacks, you end up with hard to read and debug code.

If you have transparent async, then:

Then how do you know what blocks and what doesn't ? What's asynchronous and what's going to trigger a switch ? What's a disguised callback and what's the next line ?

What's the solution then ?

Re:Show HN: Nsynjs – JS engine with stoppable threads and wi... by balfirevic on Wednesday May 24, 2017 @06:48AM (#14409003)
Why would you need to know, except in some special cases? If you're using async/await, your next line is not executing anyway until the result comes, blocking or not.
Re:Show HN: Nsynjs – JS engine with stoppable threads and wi... by sametmax on Wednesday May 24, 2017 @08:58AM (#14409646)
Because otherwise you block the even loop or mismatch life cycle. Espacially reading an unfamiliar code base.
Re:Show HN: Nsynjs – JS engine with stoppable threads and wi... by z3t4 on Wednesday May 24, 2017 @06:57AM (#14409034)
embrace higher-order functions. Use named functions and closures!

example code:

  var anchors = document.getElementsByTagName(“a”);
  for(var i=0,len=anchors.length; i<len; i++){
    alertClickAnchor(i); // Named function
  }

  function alertClickAnchor(i) { // Closure
    anchors[i].onclick = function() {
      alert(i);
    }
  }
Re:Show HN: Nsynjs – JS engine with stoppable threads and wi... by sametmax on Wednesday May 24, 2017 @08:59AM (#14409657)
This makes anything but basic life cycles very hard to read.
Re:Show HN: Nsynjs – JS engine with stoppable threads and wi... by z3t4 on Wednesday May 24, 2017 @10:13AM (#14410125)
You can look at each function at a time and only have to understand what that function does. No more nesting.