переменная javascript DB.transaction - PullRequest
1 голос
/ 22 января 2012
function initDatabase() {
 try {
    if (!window.openDatabase) {
        alert('Local Databases are not supported by your browser. Please use a Webkit browser for this demo');
    } else {
        var shortName = 'testdb';
        var version = '1.0';
        var displayName = 'test database';
        var maxSize = 3 * 1024 * 1024; // 3 MB
        DB = openDatabase(shortName, version, displayName, maxSize);
    }
} catch(e) {
    if (e == 2) {
        // Version mismatch.
        console.log("Invalid database version.");
    } else {
        console.log("Unknown error "+ e +".");
    }
    return;
 } 
}

function GetMe() {
 DB.transaction(
    function (transaction) {

    //some other stuffs         
    var ff = 55;


    }
);

 return ff;
}

$(function() { 

    initDatabase();
    alert(GetMe());


});

ребята, помогите мне с этим

функция GetMe возвращает "неопределенное", а не 55, потому что переменная "ff" находится внутри DB.transaction.

if the variable "ff "был за пределами DB.transaction, он отлично работает, но если его нет внутри DB.transaction

, может кто-нибудь сказать мне, как заставить его возвращать переменную" ff "внутри DB.transaction

я пытался вернуться (DB.transaction.ff);и несколько других вещей, но ничего не помогло: (

, пожалуйста, помогите мне.

спасибо:)

1 Ответ

1 голос
/ 22 января 2012

Вы ответили на свой вопрос:

, если переменная "ff" была вне DB.transaction, она работает отлично, но не если она находится внутри DB.transaction

Переменная ff должна находиться вне функции, чтобы правильно ее охватить.Это то, что вы хотите в этом случае, так как вы хотите, чтобы родительская функция возвращала ff:

function GetMe() {
   var ff;
   a = function () {
       ff = 55;
   }
   a()
   return ff; // 55
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...