約束付きのGoogleAuthライブラリの読み込み

antanas_sepikas

promiseを使用してgoogle認証ライブラリをロードしようとしていますが、gapi.auth2.getAuthInstance()を呼び出してpromiseで返そうとすると失敗します。

これが私がこれをしている方法です:

var loadPlatform = function ($q) {
    var deferred = $q.defer(),
        platform = document.createElement('script');

    platform.src ='https://apis.google.com/js/platform.js';
    platform.type = 'text/javascript';
    platform.async = true;
    platform.defer = true;
    platform.onload = deferred.resolve;
    platform.onerror = deferred.reject;

    document.body.appendChild(platform);

    return deferred.promise;
};

//I return this from other function
return loadPlatform($q)
    .then(function () {
        var deferred = $q.defer();

        gapi.load('auth2', function () {
            deferred.resolve(gapi.auth2);
        });

        return deferred.promise;
    })
    .then(function (auth2) {
        //This function retuns Promise
        //https://developers.google.com/identity/sign-in/web/reference#gapiauth2initparams
        return auth2.init(params);
    })
    .then(function (GoogleAuth) {
        //Here I should have solved GoogleAuth object
    });

auth2.init(params)を返すまではすべて機能し、その後ブラウザがフリーズします。ここで何が起こっているのですか?

DevVersion

私はちょうど同じ問題を経験しました。

オブジェクトのinit()約束を連鎖させることはできないようですauth2

ブラウザがフリーズしないように、ラップアラウンドする必要がありました。

return new Promise<void>(resolve => {
  gapi.auth2.init({
    client_id: this._clientId,
    scope: 'profile'
  }).then(() => resolve());
})

また、resolve関数を直接適用できないのも面白かったです

.then(resolve);

更新

上で述べたように、init()呼び出されたオブジェクトはpromiseではなく、一種のラッパーでありメソッドを呼び出したときにのみ実際のpromiseを返します。.then

ここに画像の説明を入力してください

return gapi.auth2.init({
  client_id: this._clientId,
  scope: 'profile'
}).then(); 
// Auth2 only returns a promise, when we chained into the PromiseLike object once.

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

共有ライブラリの読み込みエラー(glew)

分類Dev

Tomcatライブラリのjarの積極的な読み込み

分類Dev

Pythonの予約語と組み込みのリストはライブラリで利用できますか?

分類Dev

動的に読み込まれたときのライブラリパス?

分類Dev

dlopen()を使用した共有ライブラリの読み込みエラー

分類Dev

Docker構成 'Exec形式エラー'ライブラリの読み込み

分類Dev

Tar-共有ライブラリの読み込みエラー-CentOS

分類Dev

Fresco画像読み込みライブラリのDraweeとImagePipelineの違い

分類Dev

Java固定幅ファイル形式の読み取り/書き込みライブラリ

分類Dev

Java-注釈付きクラスの読み込み

分類Dev

GSONライブラリのカスタム読み取りおよび書き込みメソッド

分類Dev

Android-Renderscriptサポートライブラリ-RSjniライブラリの読み込みエラー

分類Dev

Picasso画像読み込みライブラリ、いくつかの問題

分類Dev

ボレーライブラリを使用したjson配列の読み込み

分類Dev

Androidで共有ライブラリの読み込みを遅らせる方法

分類Dev

TokenAutoCompleteライブラリで画像の読み込みに失敗しました

分類Dev

TomEEライブラリの読み込み順序を管理する

分類Dev

外部ライブラリの書き込みのJavaDoc

分類Dev

ネイティブライブラリの読み込みエラー:ライブラリ 'msvcr120' RNetLogoを読み込めません

分類Dev

Office.dll COMExceptionの読み込みエラー: 'タイプライブラリ/ DLLの読み込みエラー'

分類Dev

gundbでのプライベート書き込みとパブリック読み取り

分類Dev

コラボラトリーでのGoogleドライブからのデータの読み込みの問題

分類Dev

約束の読み込み状態を表示する

分類Dev

Android JUnitテストでのネイティブライブラリの読み込み

分類Dev

Eclipseを使用したAndroidのネイティブライブラリの読み込み

分類Dev

組み込みデバイス用のgcloudPubSubライブラリ

分類Dev

DLLの読み込みエラー、欠落:Microsoft Word16.0オブジェクトライブラリ

分類Dev

AWSラムダ関数でのライブラリの読み込みに関する問題-Python

分類Dev

Java:依存関係のある共有ライブラリを読み込む

Related 関連記事

  1. 1

    共有ライブラリの読み込みエラー(glew)

  2. 2

    Tomcatライブラリのjarの積極的な読み込み

  3. 3

    Pythonの予約語と組み込みのリストはライブラリで利用できますか?

  4. 4

    動的に読み込まれたときのライブラリパス?

  5. 5

    dlopen()を使用した共有ライブラリの読み込みエラー

  6. 6

    Docker構成 'Exec形式エラー'ライブラリの読み込み

  7. 7

    Tar-共有ライブラリの読み込みエラー-CentOS

  8. 8

    Fresco画像読み込みライブラリのDraweeとImagePipelineの違い

  9. 9

    Java固定幅ファイル形式の読み取り/書き込みライブラリ

  10. 10

    Java-注釈付きクラスの読み込み

  11. 11

    GSONライブラリのカスタム読み取りおよび書き込みメソッド

  12. 12

    Android-Renderscriptサポートライブラリ-RSjniライブラリの読み込みエラー

  13. 13

    Picasso画像読み込みライブラリ、いくつかの問題

  14. 14

    ボレーライブラリを使用したjson配列の読み込み

  15. 15

    Androidで共有ライブラリの読み込みを遅らせる方法

  16. 16

    TokenAutoCompleteライブラリで画像の読み込みに失敗しました

  17. 17

    TomEEライブラリの読み込み順序を管理する

  18. 18

    外部ライブラリの書き込みのJavaDoc

  19. 19

    ネイティブライブラリの読み込みエラー:ライブラリ 'msvcr120' RNetLogoを読み込めません

  20. 20

    Office.dll COMExceptionの読み込みエラー: 'タイプライブラリ/ DLLの読み込みエラー'

  21. 21

    gundbでのプライベート書き込みとパブリック読み取り

  22. 22

    コラボラトリーでのGoogleドライブからのデータの読み込みの問題

  23. 23

    約束の読み込み状態を表示する

  24. 24

    Android JUnitテストでのネイティブライブラリの読み込み

  25. 25

    Eclipseを使用したAndroidのネイティブライブラリの読み込み

  26. 26

    組み込みデバイス用のgcloudPubSubライブラリ

  27. 27

    DLLの読み込みエラー、欠落:Microsoft Word16.0オブジェクトライブラリ

  28. 28

    AWSラムダ関数でのライブラリの読み込みに関する問題-Python

  29. 29

    Java:依存関係のある共有ライブラリを読み込む

ホットタグ

アーカイブ