1

ユーザーのメールアドレスをJavaScriptの変数に保存するのに問題があります。私がやりたいのは、APIを呼び出し、電子メールアドレスを取得し、それを「email」変数に格納して、画面上の他の関数で使用できるようにすることです。

私のコードは次のようになります。

function emailCheck(){
    var email;
    FB.api('/me',email = function(response){
        return response.email;
        })
    }

    alert(email);

適切な権限があることを確認しました。私は自分の応答セクションに入れalert(response.email)て、適切な電子メールで警告します。問題は、関数の外部で電子メール変数にアクセスできないことです。

4

1 に答える 1

1

すべてのAPIメソッドは非同期であるため、継続を使用する必要があります

function emailCheck(continuation){
  FB.api('/me', function(response){
    continuation(response && response.email);
  });
}

emailCheck(function(email) {
  alert(email);
}

別の方法は、Promises、Futures、またはdeferreds(実際には同じこと)を使用して、これの一部を抽象化することです。

于 2012-12-21T02:54:42.823 に答える