promise and cb are poor design imo.<p>promises are unnecessarily complex, promises replace this paradigm:<p><pre><code>     data = foo()
     bar(data)

</code></pre>
both could be probably be replaced by a new keyword (if we make compilers a tad smarter)<p><pre><code>    foo = fn1()
    bar = fn2()
    await foo,bar
    baz()
</code></pre>
callbacks definitely have there place but should not be used for returned databases query et al, execpt for transforming the data like a middleware:  db.query(..., datatransformfn)