extract: return promise as command result (resolve async)