Debug School

rakesh kumar
rakesh kumar

Posted on

write a program`of async and await with promise and resolve in server side using laravel

Sure, here's an example program that demonstrates the use of async and await with Promise in Laravel:

async function processRequest(request) {
  // Perform server-side processing here
  const response = await new Promise((resolve, reject) => {
    // Perform some asynchronous operation here, e.g. querying a database
    DB::table('users').where('id', request.userId).first((error, user) => {
      if (error) {
        reject(error);
      } else {
        resolve(user);
      }
    });
  });
  return response;
}
Enter fullscreen mode Exit fullscreen mode
// Example usage
async function handleRequest(request) {
  try {
    const result = await processRequest(request);
    console.log(result);
  } catch (error) {
    console.error(error);
  }
}
Enter fullscreen mode Exit fullscreen mode
// Call the function with a sample request object
const request = { userId: 1 };
handleRequest(request);
Enter fullscreen mode Exit fullscreen mode

Image description

Image description

In this example, processRequest() is an async function that performs some server-side processing and returns a Promise object that resolves with the result of the processing. The processing is done using the Laravel database query builder to query the users table for a user with a specific id.

The handleRequest() function is an example of how processRequest() can be used. It takes a request object and passes it to processRequest() using await. If processRequest() resolves successfully, handleRequest() logs the result to the console. If processRequest() throws an error, handleRequest() logs the error to the console.

Note that this is just a basic example to demonstrate the syntax of async, await, and Promise in Laravel. In a real-world application, you would likely perform more complex server-side processing and error handling, and use the results to generate a response to the client.

Image description

======================================================

ANOTHER METHOD

Sure, here's an example program with full code that demonstrates the use of async, await, and Promise in a Laravel controller to get all data from a table where the city is Bokaro:

// app/Http/Controllers/MyController.php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

class MyController extends Controller
{
    public async function getAllDataFromTableWithCityBokaro()
    {
        try {
            $data = await new Promise(function ($resolve, $reject) {
                DB::table('my_table')
                    ->where('city', 'Bokaro')
                    ->get(function ($error, $data) use ($resolve, $reject) {
                        if ($error) {
                            $reject($error);
                        } else {
                            $resolve($data);
                        }
                    });
            });
            return response()->json($data);
        } catch (Exception $e) {
            return response()->json(['error' => $e->getMessage()]);
        }
    }
}
Enter fullscreen mode Exit fullscreen mode
// routes/web.php

use App\Http\Controllers\MyController;

Route::get('/my-data', [MyController::class, 'getAllDataFromTableWithCityBokaro']);
Enter fullscreen mode Exit fullscreen mode

Image description

Image description

Image description

In this example, the MyController class contains an async function called getAllDataFromTableWithCityBokaro() that performs a database query using the Laravel query builder to get all data from a table where the city is Bokaro. It returns a JSON response containing the query results.

The getAllDataFromTableWithCityBokaro() function uses await to call a Promise that wraps the database query. The Promise resolves with the query results if the query is successful, or rejects with an error if the query fails. The try-catch block in getAllDataFromTableWithCityBokaro() handles any errors that occur during the query.

Finally, the getAllDataFromTableWithCityBokaro() function is registered as a route in the Laravel routes/web.php file, so it can be accessed by sending a GET request to the /my-data endpoint.

Note that this is just a basic example to demonstrate the syntax of async, await, and Promise in Laravel. In a real-world application, you would likely perform more complex server-side processing and error handling, and use the results to generate a response to the client.

Image description

======================================================

ANOTHER METHOD

Here's an example program that demonstrates the use of async, await, and Promise in a Laravel controller to get all data from a table where the city is Bokaro:

async function getAllDataFromTableWithCityBokaro() {
  const results = await new Promise((resolve, reject) => {
    DB::table('my_table')
      .where('city', 'Bokaro')
      .get((error, data) => {
        if (error) {
          reject(error);
        } else {
          resolve(data);
        }
      });
  });
  return results;
}

class MyController extends Controller {
  async function getAllData() {
    try {
      const data = await getAllDataFromTableWithCityBokaro();
      return response()->json($data);
    } catch (error) {
      return response()->json(['error' => $error->getMessage()]);
    }
  }
}

Enter fullscreen mode Exit fullscreen mode

Image description

Image description

// Example usage in routes file

Route::get('/my-data', 'MyController@getAllData');
Enter fullscreen mode Exit fullscreen mode

In this example, getAllDataFromTableWithCityBokaro() is an async function that performs a database query using the Laravel query builder to get all data from a table where the city is Bokaro. It returns a Promise object that resolves with the query results.

The MyController class contains an async function called getAllData() that calls getAllDataFromTableWithCityBokaro() using await to get the query results. If the query is successful, getAllData() returns a JSON response containing the data. If the query fails, getAllData() returns a JSON response containing an error message.

Finally, the getAllData() function is registered as a route in the Laravel routes/web.php file, so it can be accessed by sending a GET request to the /my-data endpoint.

Image description

Top comments (0)