when modifyOn, handle promise