Это устаревший пример. Этим патерном уже навряд ли пользуются. Есть готовые ассинхронные методы, которые вызываются через async await. Если Вы конечно с нуля пишите свои методы, то в любом случае применяя async await нет необходимости самому писать callback, компилятор все сделает за Вас.