add q: promise deferred demo