That's uglier, sadly.
I wrote this demo to show how easy it is to parallelize a for loop with await, but that `test` function of yours (you're missing `var data;` btw) is kindof already making it worse than the "vanilla" way of doing it:
```js
function fib(n) {
  var a = 0, b = 1, i = 0;
  (function cb() {
    for (; i < n; i++) {
      var c = a + b;
      a = b;
      b = c;

      // Every 4 iterations, 'yield'.
      if ((i & 3) === 0)
        return process.nextTick(cb); // return setTimeout(cb, 0);
    }
    console.log('golden ratio for', i, 'iterations:', b / a, '(last two values:', a, b, ')');
  })();
}
```