optimized async with local.util.nextTick