Reusable module in Terraform
If it doesn't outright fail you can expect to see a cycle warning where you've created a loop in Terraform and it's trying to fulfil your request for asg-name before the asg has been created.

To get what you need you'll need to have something like the following:

module_apps/module_apps.tf

resource "aws_autoscaling_group" "example" {
  name = "${var.asg_name}"
}


module_init.tf

variable "asg_name" { default = "asg-ad" }

module "module_init" {
  source = "../module_apps"

  asg_name = "${var.asg_name}"
}

output "asg_name" {
  value = "${var.asg_name}"
}


This way, if you call module_init somewhere else you'll have asg_name available to you. Always be careful of trying to use an output of a module to create the module, Terraform doesn't handle loops like that well and the errors can be confusing to diagnose.