support progress for promise. Fixes #480