Dexie Logo
Documentation

Dexie.async()

Syntax

var myAsyncFunction = Dexie.async(function* () {
    // Function body goes here.
    // To await, use the yield keyword.
});

Return Value

Function

Description

Makes it possible to use async functions with modern browsers (Chrome, Firefox, Opera and Edge) without the need of a transpiler.
Table below shows how this maps to ES7 async / await.
Using function*() and yieldUsing async / await
Declare async functionDexie.async(function* () {});async function() {}
Declare+execute functionDexie.spawn(function* () {});(async function() {})()
Await a Promiseyield p;await p;
Declare Promise Generatorfunction* f (){}N/A
Await Promise Generatoryield* fn();N/A

Sample

var myAsyncFunction = Dexie.async(function* () {
    var db = new Dexie("TestDB");
    db.version(1).stores({foo: ',bar'});
    try {
        yield Dexie.delete("TestDB");
        yield db.open();
        yield db.foo.add({bar: "foobar"}, 1);
        var items = yield db.foo.toArray();
        console.log(items.length);
    } finally {
        db.close();
    }
});

myAsyncFunction().catch(e => console.error(e));

See Also

© 2014-2025 Awarica AB

Made with love for great people.

Read Terms & Conditions and Privacy Policy.