[過去ログ] スレ立てるまでもない質問はここで 159匹目 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
851
(1): デフォルトの名無しさん [sage] 2022/04/25(月) 10:12:11.07 ID:6o33udeT(1/9) AAS
webpack 5.72.0 で、Promise を返すインスタンスメソッドを持つクラスを書いた index.js をビルドして実行してるのだけど

問題は Promise の実処理として
return new Promise(function(onSuccess, onError){...})
と書いてると、この無名関数内で(クロージャとしての) this にアクセスできない
アロー関数に直すと this にアクセスできる

これってなんで?
babel 通さない場合には問題ないからTypeScript の仕様なんだと思うけど
852: デフォルトの名無しさん [sage] 2022/04/25(月) 10:33:17.16 ID:6o33udeT(2/9) AAS
>>851
babel通さない → 元とした JavaScript コード
855: デフォルトの名無しさん [sage] 2022/04/25(月) 14:46:50.74 ID:6o33udeT(3/9) AAS
>>854
854(3): デフォルトの名無しさん [sage] 2022/04/25(月) 11:54:40.27 ID:ub0/1n3n(1) AAS
tsの設定でjsのstrictモードを有効にしてない?
functionを呼び出す主体となるオブジェクトを明示してないからthisがundefinedになるのは自然だと思う
strictでなければグローバルオブジェクトを見に行こうとする
アロー関数はthisをレキシカルスコープで束縛するからreturn文を書いた場所のthisが見える
してる "use strict";
TypeScript では JavaScript とは異なり、インスタンスメソッド内では this は明示的じゃないと見なしてクロージャとしては渡さない
という仕様、という理解でいいの?
856: デフォルトの名無しさん [sage] 2022/04/25(月) 14:53:45.61 ID:6o33udeT(4/9) AAS
>>854
あ、もしかして webpack.config.js で strict の設定とかあるのか?
858: デフォルトの名無しさん [sage] 2022/04/25(月) 15:00:13.58 ID:6o33udeT(5/9) AAS
>>854
あーーー
function はオブジェクト生成の文脈でも使われるから
無名関数内でも自身のインスタンスへの参照になってしまうのか
ややこしいな…
861
(1): デフォルトの名無しさん [sage] 2022/04/25(月) 16:30:21.99 ID:6o33udeT(6/9) AAS
別の質問

aws-sdk を使っていますが、現在のバージョンはブラウザでは webpack で使うと思います
ここで、API Gateway の生成する SDK は JavaScript なんですが、サインインの結果のトークンを渡せないです
これは旧来のjs版の aws-sdk を使うしかないという話?
→ webpack の出力コードからのエクスポート方法は調べたけど見つからなかった

それともこれもバンドルしてコードを書く?(webpackに寄せる)
それとも ID トークンはグローバル(window 変数とかにプロパティ生やして)に保存してやり取りさせる?
862: デフォルトの名無しさん [sage] 2022/04/25(月) 16:48:40.94 ID:6o33udeT(7/9) AAS
セッションストレージに格納してたのを思い出して渡せたけど
こういう場合にはどれが正解なの?
865: デフォルトの名無しさん [sage] 2022/04/25(月) 19:21:47.60 ID:6o33udeT(8/9) AAS
>>863
863(1): デフォルトの名無しさん [sage] 2022/04/25(月) 17:34:15.57 ID:nkJauqdV(2/3) AAS
質問が意味不明なので整理してきて
1. 今の aws-sdk はブラウザじゃ webpack で固めるのが標準の方針となっているが、webpack が生成するスクリプトでは export は除去される
3. API Gateway が生成する SDK はモジュール化されてない JavaScript のファイル群なので、webpack でパッケージ化は難しそう

という前提で、aws-sdk で Cognito から得たアクセストークンを、どうやって API Gateway の SDK に渡すのが一番いい?
866: デフォルトの名無しさん [sage] 2022/04/25(月) 19:31:16.73 ID:6o33udeT(9/9) AAS
2 が迷子…
ともかく webpack では、外部にデータを出す方法がない(か、単に知らないだけ)
webpack 内のスクリプトで得たデータを、レガシーな外部ライブラリに渡したい場合にはどうするのがよいの?という質問
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.480s*