Async softlock is an asynchronous database interface for reliably rejecting outdated transactions
Example:
// this caches the values of those keys locally too.
// an meta lock object can be called with 'lock' again to submit that, or with 'get' to add additional retrieval keys.
function fooQuery(){
let query = db.lock("key1 key2 key3").get("key4 key5"); // lock: {success: false, failure: false, wait: async ()=>false, keyList: [''], valueList: [''], valueMap: {}, lockedRevisions:{}}