javascript - 如何在javascript中一一调用两个方法?

标签 javascript jquery

<分区>

请看一下这个方法。在此函数响应中,我调用了两个函数 findConnectedUsersRelationship()displayUsers(response.users)

问题是 displayUsers(response.users) 方法在 findConnectedUsersRelationship() 之前运行并获取结果。我的要求是我需要首先运行 findConnectedUsersRelationship() 和第二个 displayUsers(response.users)。第二种方法依赖于第一种方法。

function filterUsers(location, gender, youngAge, oldAge, interests){
        var userId = signedUserId;
        $.post(urlHolder.filter, {
            userId: userId,
            location: location,
            gender: gender,
            youngAge: youngAge,
            oldAge: oldAge,
            interests: interests
        }, function(response) {
            console.log('User response <<>>', response.users.length);
            var filteredUsers;
            findConnectedUsersRelationship();
            displayUsers(response.users);

        });
    }



// To find connected user relationship
var relationshipList = new Array;
function findConnectedUsersRelationship() {
    try {
        $.post(urlHolder.findConnectedUsersRelationship, {
            userId : signedUserId
        }, function(response) {
            //console.log('response downforanything: ', JSON.stringify(response));
            if (response) {
                for (var counter = 0; counter < response.users.length; counter++) {
                    relationshipList.push(response.users[counter].id);
                }
            } else {
                console.log('No connected users >>>> ');
            }
            //console.log('relationshipList.length',relationshipList);
            console.log('relationshipList length in auto complete *** ',relationshipList.length);
        });
    } catch (e) {
        console.log('findConnectedUsersRelationship Exception >>>', e);
    }

}

最佳答案

$.post 返回一个 promise

您可以使用它来继续您的代码:

function filterUsers(location, gender, youngAge, oldAge, interests){
    $.post(url, { ... }, function(response) {
        findConnectedUsersRelationship().done(function() {
            displayUsers(response.users); 
        });
    });
}

并更改您的 findConnectedUsersRelationship() 以从其 ajax 函数返回 promise ,因此代替:

function findConnectedUsersRelationship() {
    $.post(...

变成

function findConnectedUsersRelationship() {
    return $.post(...

关于javascript - 如何在javascript中一一调用两个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39161376/

相关文章:

jquery - 模糊容器中的背景图像,但不模糊容器中的内容

javascript - jQuery :checked getting value of last element

javascript - 使用具有多个下拉列表的 jQuery "find"和 "filter"进行过滤

javascript - Google 脚本 POST 方法与 poloniex api 调用的 JAVA 不匹配

javascript - 在启用监视和启动服务器的情况下运行 webpack

php - 如何在数据库中增加值(value)?

javascript - js/jquery/html : getting a div from an iframe

jquery - 在 IE8/9 中使用 jQuery 和 XDomainRequest 的 CORS

javascript - 如何在 javascript 中使用正则表达式引用所有变量名称

javascript - 使用 Tablesorter 按列中选定选项的选择进行过滤