use Q.promise through.