問題タブ [ecmascript-2016]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
typescript - Decorator を使用して実装されたインターフェースのリストを取得する
デコレータを使用して、クラスによって実装されたインターフェイスの配列を取得できるかどうか知っていますか?
したがって、次のようなことをすると:
["INinja", "IWarrior"]
実行時に、Ninja は?を含む注釈を持ちます。
ありがとう
javascript - 複数の呼び出し非同期関数の伝播を解決します
非同期関数の s を呼び出し元にバブルアップさせようとしましたがreject
、何らかの理由で機能しません。テスト済みのコード例を次に示します。
Chrome では毎回これが表示されます: Unhandled promise rejection ###rejected
.
なぜこれが起こっているのですか?より高いレベルからスローされたすべてのエラーを処理できるようにしたいと考えていますdo2()
(上記の例は、try/catch が indo2()
および wrapsの場合に正常に動作しますawait this.do3();
)。ありがとう!
編集:もう少し明確にするために、次のように try/catch を取り出して挿入するとdo1()
、do2()
すべて正常に動作します。
javascript - これをハードコーディングしないようにするにはどうすればよいですか? デコレータで
「typescript デコレーターの実装方法」を読みました。複数のソースがありますが、デコレータではできなかったこともあります。
関数を呼び出すとfoo
:
オブジェクトFooBar
は in によってコンソールに記録されconsole.log(this);
ますfoo
文字列"FooBar {foo: function, bar: function} bar test"
は in によってコンソールに記録されconsole.log(this, "bar", arg);
ますbar
。
それでは、デコレータを使用しましょう。
同じ関数を使用しますが、装飾されています。
foo
そして、以前と同じように呼び出します。
オブジェクトWindow
は in によってコンソールに記録されconsole.log(this);
ますfoo
Andは、cause causeによってbar
呼び出されるfoo
ことはありません。this.bar(arg);
Uncaught TypeError: this.bar is not a function
問題は、デコレータthis
内にハードコーディングされていることです:log
this
元の値を保存するにはどうすればよいですか?
javascript - ES7 async/await の概念上の問題
このスタイルを学ぶために、既存のプログラムをasync
/await
を ( 経由でBabel
)使用するように移行しています。bluebirdCoroutines
私はこのチュートリアルを見てきました。
以下の動作に少し困っています。このスニペットは期待どおりに機能します。
次のように書き直すと、まだ機能しますが、最初の操作はもはや並列ではありません (完了するまでにはるかに時間がかかります)!
これはの実装ですdlPart()
私は何が欠けていますか?
javascript - `window.location.hash.includes` を使用すると、IE11 で「オブジェクトはプロパティまたはメソッド 'includes' をサポートしていません」がスローされる
?
ウィンドウ内のハッシュ ポップ状態を制御するために、URL に が含まれているかどうかを確認しています。IE だけで、他のすべてのブラウザには問題がありません。
この方法でロードしようとすると、デバッガーから次のエラーが表示されます。
includes
オブジェクトはプロパティまたはメソッド ' 'をサポートしていません
popstate からページを読み込んでもエラーは発生しません。
node.js - 非同期関数が完了する前にノードが終了する
promise を返す関数があり、非同期関数内からそれを待機しようとしています。問題は、プロミスを待つのではなく、プログラムがすぐに完了することです。
async-test.js:
ビルドして実行:
結果:
1 秒待つのではなく、すぐに解決しても効果はありません。
興味深いことに、「解決中」は、現在は同期されていますが、出力されません。
コンパイラの問題が疑われますが、Babel の出力を確認したところ、確かに、同期バージョンがコンパイルされました。
非同期関数内からの約束を待つことができると思いました。私がここに欠けているものはありますか?