I find handling of `root.walk` very confusing, and would suggest to first store it's result and put some comments to explain what it does, something along this lines:

```js
// walk returns a promise that can be used to observe completion of all
// the computations returned by a `walker` function regardless of their
// success or failure.
let completion = root.walk(...)
completion.then(....)
```