# Asynchronous Programming (Node.js / NestJS) > Callbacks, Promises, async/await, error handling, Promise.all, Promise.race - 25 interview questions - Junior - [Interview Questions: Node.js / NestJS](https://sharpskill.dev/en/technologies/node-nestjs/interview-questions.md) ## 1. In NestJS, how to make a controller method asynchronous? **Answer** Add the async keyword before the method and it will automatically return a Promise. NestJS automatically handles Promise resolution and sends the result to the client. You can also directly return a Promise without async if needed. NestJS also supports RxJS Observables. Using async/await makes the code more readable for asynchronous operations (DB, external APIs, etc.). ## 2. What is the main problem with callbacks in JavaScript? **Answer** Callback hell (pyramid of doom) occurs when multiple asynchronous operations are nested, creating code that is difficult to read and maintain. Each indentation level adds complexity. Promises and async/await were introduced to solve this problem by allowing more linear asynchronous code writing. ## 3. What is a Promise in JavaScript? **Answer** A Promise is an object representing the eventual completion (or failure) of an asynchronous operation and its resulting value. It can be in three states: pending, fulfilled (resolved successfully), or rejected (failed with an error). Promises allow chaining asynchronous operations with .then() and .catch(). ## 22 more questions available - What are the three possible states of a Promise? - How to handle errors with Promises? Sign up for free: https://sharpskill.dev/en/login ## Other Node.js / NestJS interview topics - [Node.js Fundamentals](https://sharpskill.dev/en/technologies/node-nestjs/interview-questions/nodejs-fundamentals.md): 20 questions, Junior - [Node.js Core APIs](https://sharpskill.dev/en/technologies/node-nestjs/interview-questions/nodejs-core-apis.md): 25 questions, Junior - [Express.js Basics](https://sharpskill.dev/en/technologies/node-nestjs/interview-questions/express-basics.md): 20 questions, Junior - [NestJS Fundamentals](https://sharpskill.dev/en/technologies/node-nestjs/interview-questions/nestjs-fundamentals.md): 23 questions, Junior - [REST API Design](https://sharpskill.dev/en/technologies/node-nestjs/interview-questions/rest-api-design.md): 20 questions, Junior - [Validation & DTO](https://sharpskill.dev/en/technologies/node-nestjs/interview-questions/validation-dto.md): 20 questions, Junior - [API Documentation & Contracts](https://sharpskill.dev/en/technologies/node-nestjs/interview-questions/api-documentation.md): 20 questions, Junior - [Error Handling](https://sharpskill.dev/en/technologies/node-nestjs/interview-questions/error-handling.md): 20 questions, Junior - [Unit Testing](https://sharpskill.dev/en/technologies/node-nestjs/interview-questions/testing-unit.md): 20 questions, Junior - [Task Scheduling](https://sharpskill.dev/en/technologies/node-nestjs/interview-questions/scheduling-cron.md): 15 questions, Junior - [NestJS Modules & DI](https://sharpskill.dev/en/technologies/node-nestjs/interview-questions/nestjs-modules-di.md): 20 questions, Mid-Level - [Configuration & Environment Management](https://sharpskill.dev/en/technologies/node-nestjs/interview-questions/configuration-environment.md): 20 questions, Mid-Level - [JWT Authentication](https://sharpskill.dev/en/technologies/node-nestjs/interview-questions/authentication-jwt.md): 25 questions, Mid-Level - [Authorization & RBAC](https://sharpskill.dev/en/technologies/node-nestjs/interview-questions/authorization-rbac.md): 20 questions, Mid-Level - [Database with TypeORM](https://sharpskill.dev/en/technologies/node-nestjs/interview-questions/database-typeorm.md): 30 questions, Mid-Level - [Prisma ORM](https://sharpskill.dev/en/technologies/node-nestjs/interview-questions/prisma-orm.md): 25 questions, Mid-Level - [Middleware & Interceptors](https://sharpskill.dev/en/technologies/node-nestjs/interview-questions/middleware-interceptors.md): 20 questions, Mid-Level - [File Upload](https://sharpskill.dev/en/technologies/node-nestjs/interview-questions/file-upload.md): 15 questions, Mid-Level - [WebSockets](https://sharpskill.dev/en/technologies/node-nestjs/interview-questions/websockets.md): 20 questions, Mid-Level - [GraphQL with NestJS](https://sharpskill.dev/en/technologies/node-nestjs/interview-questions/graphql-basics.md): 25 questions, Mid-Level - [End-to-End Testing](https://sharpskill.dev/en/technologies/node-nestjs/interview-questions/testing-e2e.md): 20 questions, Mid-Level - [Caching with Redis](https://sharpskill.dev/en/technologies/node-nestjs/interview-questions/caching-redis.md): 20 questions, Mid-Level - [Queues with Bull](https://sharpskill.dev/en/technologies/node-nestjs/interview-questions/queues-bull.md): 20 questions, Mid-Level - [DevOps, Logging & CI/CD](https://sharpskill.dev/en/technologies/node-nestjs/interview-questions/logging-monitoring.md): 25 questions, Mid-Level - [Docker & Containerization](https://sharpskill.dev/en/technologies/node-nestjs/interview-questions/docker-containerization.md): 25 questions, Mid-Level - [Microservices](https://sharpskill.dev/en/technologies/node-nestjs/interview-questions/microservices.md): 30 questions, Senior - [Security Best Practices](https://sharpskill.dev/en/technologies/node-nestjs/interview-questions/security-best-practices.md): 25 questions, Senior - [Performance & Cloud Deployment](https://sharpskill.dev/en/technologies/node-nestjs/interview-questions/performance-optimization.md): 30 questions, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/en/technologies/node-nestjs/interview-questions/asynchronous-programming