[refactoring] async -> promise