But for more real life use there are fetch methods:
Fetch by lookup
let account: Account?=tryawait client.storage.fetch( moduleName:"System", itemName:"account", key: keyPair.publicKey.hex.encode(includePrefix:true).hex.decode())
This exact method allows you to "subscribe" to the flow of your account details, but this flow is only updated by every runtime metadata change. You're free to combine this flow with whatever you want, like your balance updates event, to create always up to date assets balance for your application.
Depending on the storage item type, there might be no keys, or even multiple keys. Pleas refer to your network runtime metadata, or use find method to debug this item to see what keys are required if required at all.
Fetch by storage item
If you have storage item stored in your memory, like for continuous updates, there are several async-await functions to get the response: