我有一个遍历用户关注者的基本for循环。我想从此函数外部进行console.log跟踪者列表,因为我想将此数组与其他地方的另一个数组进行比较。我该怎么做呢?

    // Run through user's followers
    SC.get('/users/9110252/followings',function(followings) {

    var userFollowings = [];


        for(i = 0; i < followings.collection.length; i++) {

            userFollowings.push(followings.collection[i].username);

        }

    });

    console.log(userFollowings);

最佳答案

我猜你的SC.get方法是异步的,这就是为什么你不能从中返回用户关注的原因。

但是,您可以将声明放在外面。这还不够,因为console.log将在SC.get结束之前进行评估。通常,处理异步函数涉及promises或回调。 :

    var userFollowings = [];
        SC.get('/users/9110252/followings').then(function(followings) {
            for(i = 0; i < followings.collection.length; i++) {
userFollowings.push(followings.collection[i].username);
            }

        }).done(function() {
        console.log(userFollowings);
    });


这样,将使用正确的userFollowings数组评估console.log

10-08 01:20