相关疑难解决方法(0)

使用jQuery进行JavaScript异步返回值/赋值

我有以下jQuery函数.我正在尝试返回此处显示的GUID值alert();.警报工作正常并且值已填充,但我似乎无法将其分配给变量并返回其值.

最终我需要在其他函数中访问GUID值等.我尝试过的所有东西只显示为undefined.

我想做这样的事情:

function trackPage(){
    var elqTracker = new jQuery.elq(459);
    elqTracker.pageTrack({
        success: function() {
            elqTracker.getGUID(function(guid) {
                alert(guid);
                var returnValue = guid;
            });
        }
    });
    return returnValue;
}

var someGuid = trackPage();
Run Code Online (Sandbox Code Playgroud)

javascript jquery asynchronous

28
推荐指数
2
解决办法
3万
查看次数

Firebase on()不会返回任何内容

我有这段代码使用on()来从Firebase获取数据,在on()里面我创建了一个对象,我希望将函数发送出去以供将来使用 - 使用return,但它似乎没有返回任何内容.所以问题是我怎样才能做对?

postsRef.on('value', function(snapshot) {
 if (snapshot.val() === null) {
 var allPosts = false,
 numberOfPosts = 0;
 }
 else {
  var allPosts = snapshot.val(),
  numberOfPosts = Object.size(allPosts);
 }
 var postsData = {
  content: allPosts,
  count: numberOfPosts
 };
 return postsData;
});
Run Code Online (Sandbox Code Playgroud)

firebase

3
推荐指数
1
解决办法
2470
查看次数

检索Firebase数据并将其返回的最佳方式,或替代方法

我正在使用Firebase进行一些项目,并且非常喜欢这个平台.

我偶然发现了一件我不能做的事情,并且想知道是否有任何方法可以实现它,或者是否有另一种方法可以做到这一点.

我要做的是创建一个函数来从我的Firebase数据库中检索最后X个条目并将数据返回给调用函数.

像这样的东西:

function getTwoLatestLocations()
{
    var twoLocations;
    myFirebaseRef.limitToLast(2).once('value', function (dataSnapshot) {
        twoLocations = dataSnapshot.val();
    }, function (errorObject) {
        // code to handle read error
        console.log("The read failed: " + errorObject.code);
    });

    return twoLocations;
}
Run Code Online (Sandbox Code Playgroud)

然后像这样调用它:

function someCalcutationsWithTheTwoLastLocations()
{
    var twoLastLocations = getTwoLatestLocations();
    // Do some calculations
}
Run Code Online (Sandbox Code Playgroud)

但正如您可能已经猜到的那样,对数据库引用的调用是异步的,因此返回的对象将始终未定义.

有没有办法优雅地做到这一点,所以我可以保持方法分离?

PS目前我的所有代码都只是在数据库调用中.丑陋.

javascript asynchronous firebase firebase-realtime-database

2
推荐指数
1
解决办法
4441
查看次数