2016-08-26 24 views
1

この方法を見てください。この関数の応答では、私は2つの関数findConnectedUsersRelationship()displayUsers(response.users)を呼び出しています。javascriptで2つのメソッドを1つずつ呼び出す方法は?

displayUsers(response.users)メソッドが実行され、findConnectedUsersRelationship()の前に結果が得られます。私の必要条件は、最初にfindConnectedUsersRelationship()を実行し、次にdisplayUsers(response.users)を実行する必要があります。第2の方法は第1の方法に依存する。

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); 
    } 

} 
+0

表示前に検索..を呼び出しているため、これはできません。代わりに、findConnectはdisplayUsersを呼び出すことができます。 –

+2

findConnectedUsersRelationship()に何が起こるかを含める必要があります。おそらく、別の$ .postがある可能性があります。 –

+0

どのように? displayUsers(response.users)メソッドはfilterUsers関数の応答を取得します。 –

答えて

5

$.postは、promiseを返します。

あなたはあなたのコードを続行するためにこれを使用することができますので、代わりに、そのAJAX機能からの約束を返すために、あなたのfindConnectedUsersRelationshipを()

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

をして変更します。

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

それは

になります
function findConnectedUsersRelationship() { 
    return $.post(... 
+0

'findConnectedUsersRelationship'の' catch'が起動するたびにエラーの後にこのaproachトリガが起きないでしょうか? 'promise'が返されないので? – eisbehr

+0

findConnectedUsersRelationship()。done(function(){ displayUsers(response.users); });私はこれを追加するが、私は "完了"を取得していますが未定義です。 –

+1

@KumaresanPerumalあなたは 'findConnectedUsersRelationship'から約束を返していません。 – Jamiec

関連する問題