Collectible Card Game example
Here is an example of an asynchronous operation in the context of a collectible card game:
class CardGame {
constructor() {
this.cards = [];
}
async loadCards() {
// This is an asynchronous operation
const response = await fetch('https://example.com/cards');
const data = await response.json();
// This line of code will not run until the data has been retrieved
this.cards = data;
}
// Public method
startGame() {
console.log('Starting game with cards:');
console.log(this.cards);
}
}
const game = new CardGame();
// This function call is asynchronous
game.loadCards();
// This line of code will run before the cards have been loaded
console.log('Loading cards...');
// This function call will be executed after the cards have been loaded
game.startGame();
In this example, the CardGame
class has a public method called loadCards
that performs an asynchronous operation to retrieve a list of cards from a remote server. The await
keyword is used to wait for the data to be retrieved before the rest of the function is executed.
While the loadCards
function is waiting for the data to be retrieved, the rest of the code continues to run. This is why the console.log
statement outside of the loadCards
function is executed before the data has been retrieved.
Once the data has been retrieved, the cards
field of the CardGame
instance is set to the list of cards, and the startGame
method is called to start the game.
Async/await makes it easier to write asynchronous code that is easy to read and understand. In this case, using async/await to load the cards asynchronously allows us to start the game without having to wait for the cards to be retrieved, which would make the game feel more responsive to the player.
Last updated