supprot WebModule namespace, use promise insted of task.js