Trim the excess fat and cut the flank steak in small, bite-size pieces. Combine the ingredients for the marinade and let the beef marinate for at least 20 minutes.
Meanwhile, cut the onions in thin slices. The bell peppers should be seeded and cut in 1-inch slices. Cut the tougher ends of the asparagus and slice them on the diagonal into 2-inch long pieces.
Bring a medium pan of water to a boil, reduce to a simmer and throw the asparagus in for about 2 or 3 minutes. Drain them, run them under cold water and dry them.
In a wok or sauté pan over a high flame, heat 1 tablespoon of the oil. Add the marinated beef strips, making sure it makes a nice sizzling sound. Once the meat is nicely browned on the outside, but still tender in the middle, about 2-3 minutes depending on the size, take it out and set it aside on a plate. You may need to sear the beef in two batches if your wok is not big enough.
Add 1 more tablespoon of the oil, and briefly stir-fry the asparagus for 3-4 minutes at medium-high eat. Set the asparagus aside and keep warm.
Add another tablespoon of oil, if necessary, and add the onions. Toss and turn until they have a nice golden brown color, 7 to 10 minutes. Add the peppers and stir until softened, about 4-5 minutes. Add sugar and vinegar, and cook for a few more minutes until the onions begin to caramelize.
Add the stock and bring to a simmer cooking for another 2 minutes to reduce the liquid. Mix the cornstarch with the 3 tablespoons of water and add slowly add it to the mixture until the sauce is a thick as you desire.
Return the beef and the asparagus to the pan and stir for another minute or so to amalgamate the flavors. Serve immediately with some white or brown rice.