add async template support for promise-based eval