0

アプリで Facebook 登録モジュールを作成しようとしています。Facebook API は私の Angular コントローラーよりも高速であるため、ここでは promise を使用する必要があります。問題は、$q が空のオブジェクトのように見え、遅延関数が定義されていないことです。

モジュール:

var module = angular.module('app.facebook', []); module.constant("fbAppId", 'herecomesmycode');

module.factory('facebook', FacebookAPI);
FacebookAPI.$inject = ['$ionicLoading', '$q', '$ionicPlatform', '$state', 'authService', 'datacontext', '$location'];

function FacebookAPI(UserService, $q, $ionicLoading, fbAppId, $state, authService, datacontext, $location) {
    return {
        fbLoginSuccess: fbLoginSuccess,
        fbLoginError: fbLoginError,
        getFacebookProfileInfo: getFacebookProfileInfo,
        fbLogin: fbLogin,
        fbRegister: fbRegister

    };

ここで $q.defer は未​​定義です:

    function fbRegister() {

        console.log($q.defer);
        if (!cordova) {
            facebookConnectPlugin.browserInit(fbAppId);
        }
        var data;
        facebookConnectPlugin.getLoginStatus(function (response) {
            if (response.status !== 'connected') {
                facebookConnectPlugin.login(["email"],
                    function(response) {
                        data = getApiData();
                    },
                    function(response) {
                    });
            } else {
                data = getApiData();
            }
        });
    }

promise を使用しないと、API から高速になりますが、API からの値を入力したいすべての変数は、API が終了する前に開始され、未定義です。

4

1 に答える 1