provide promise related method
refine tests
refine
promise libraries should used setimmediate, remote it first. And, add executeAction() now