2016-05-28 7 views
1

私が作成するユーザーのために、次のコードを使用しています:この時間は、ユーザー変数は常にnull値を取得する理由なぜ私のコードは、先ほど作成したユーザーにアクセスすることはできませんか?

firebase.auth().createUserWithEmailAndPassword($scope.data.mail, $scope.data.pwd) 
       .catch(function(error) 
         { 
         }); 

var user; 

while (!user) 
{ 
    user = firebase.auth().currentUser; 
} 

は、しかし、私は知らない:とループが完成取得することはありません。私は現在、この問題を解決することができませんでしだ。

答えて

3

あなたはJavaScriptがシングルスレッドで実行されるため、非同期の結果を待つwhileループを使用することはできません。

ループは、それが完了していても場合、約束を処理する機会を得ることはありませんJavaScriptランタイムを意味し、無期限に実行されます。

あなたは代わりに約束のthen句を使用する必要があります。問題を解決し

firebase.auth().createUserWithEmailAndPassword($scope.data.mail, $scope.data.pwd) 
    .then(function() { 
    var user = firebase.auth().currentUser; 
    // carry on executing code here 
    }) 
    .catch(function(error) { 
    }); 
+0

。どうもありがとう! :) – Kais

関連する問題