Javascript 通用异步回调函数

Javascript 通用异步回调函数,javascript,Javascript,召集人: this.init = function (onupgradeneeded, onsuccess) { var openRequest = indexedDB.open(dbName); openRequest.onupgradeneeded = function (e) { db = e.target.result; if (!db.objectStoreNames.contains(ob

召集人:

    this.init = function (onupgradeneeded, onsuccess) {

        var openRequest = indexedDB.open(dbName);

        openRequest.onupgradeneeded = function (e) {

            db = e.target.result;

            if (!db.objectStoreNames.contains(objectStoreName)) {

                console.log('Creating the ' + objectStoreName + ' objectstore');

                db.createObjectStore(objectStoreName, { keyPath: "id", autoIncrement: true });

            }

        };

        openRequest.onsuccess = function (e) {

            db = e.target.result;

            db.onerror = function (event) {
                // Generic error handler for all errors targeted at this database requests
                console.log("Database error: " + event.target.errorCode);
            };
        };

    };
当init函数运行时,它将在
openRequest.onupgradeneeded
openRequest.onsuccess
中结束

我想知道的是,是否有可能创建一个在两个函数中都被调用的通用回调函数。因此,无论运行两个函数中的哪一个,我都可以通过使用

var idb = new Demo.IndexedDB();
idb.init();
希望你明白,否则我会详细说明


谢谢

只需传入一个回调函数,并在两种情况下调用该回调函数:

idb.init(function(){
    //onupgradeneeded or onsuccess completed
});

只需传入一个回调函数,并在两种情况下调用该回调函数:

idb.init(function(){
    //onupgradeneeded or onsuccess completed
});

只需使
.init
接受一个参数,并在两个回调中调用传递的参数即可。@FelixKling刚刚注意到。有时这比你想象的要容易:-)谢谢必须让
.init
接受一个参数,并在两个回调中调用传递的参数。@FelixKling刚刚注意到。有时比你想象的要容易:-)谢谢谢谢。有时候比你想象的要容易:-)谢谢。有时候,这比你想象的要容易:-)