Javascript 连接两个Ajax请求

Javascript 连接两个Ajax请求,javascript,ajax,function,callback,facebook-javascript-sdk,Javascript,Ajax,Function,Callback,Facebook Javascript Sdk,我对JS还是个新手,在连接两个ajax请求时遇到了问题。第一点很简单: 向fb询问用户id: FB.api('/me', function(user) { if (user) { } }); 在自定义fb对象上发布自定义facebook操作: function myfunction() { FB.api( '/me/fb:myaction', 'post', { myo

我对JS还是个新手,在连接两个ajax请求时遇到了问题。第一点很简单:

向fb询问用户id:

 FB.api('/me', function(user) {
          if (user) {
          }
        });
在自定义fb对象上发布自定义facebook操作:

  function myfunction()
  {
      FB.api(
        '/me/fb:myaction',
        'post',
        { myobject: '/object/<%=@obj.id%>' },
        function(response) {
           if (!response || response.error) {
              console.log('Error occured');
           } else {
              console.log('FB POST was successful! Action ID: ' + response.id);
              $.ajax({
                type: "POST",
                url: "/record_action",
                data: { facebook_id: "John", item_id: "<%= @candidate.id %>" },
                dataType: 'json',
                success: function(data) {
                      console.log(data);
                   }
              }).done(function( msg ) {
                console.log(msg);
              });
           }
        });
  }

并尝试将myvar传递给myfunction调用,因为它不起作用。我相信这是非常琐碎的。如何做到这一点?

更好的答案是使用闭包(可能是第一个查询的成功函数)捕获此答案,并在闭包内完成其余工作


效率较低(但在学习过程中可能更实用)的方法是将数据放在两个调用之间的全局变量中。但是JavaScript中的全局变量有很多问题,如果您不想完全控制页面上运行的所有脚本,就应该像瘟疫一样避免这些问题。

您所说的“似乎不起作用”到底是什么意思?是的。哈。完全不起作用。
 FB.api('/me', function(user) {
          if (user) {
          myvar = user.facebook_id
          }
        });