こんにちは、私はJsを新しくしました。印刷前にいくつかの非同期関数が完了するのを待っています。ni
しかし、コードはそれを印刷することはありませんなぜ私は理解できません。私を助けてください:(すべての非同期機能が完了した後にPromise.allが機能しない理由を教えてください。
// public function
this.run = function() {
'use strict';
let compile_lib = lib_array.map((item) => {
return new Promise(() => {compileEntry(item);})
});
Promise.all(compile_lib).then(() => { console.log("ni"); });
}
あなたの約束は、引数を取る(解決、拒否)する必要があります。これらの議論のおかげで、約束が成功したか失敗したかを「言う」ことができます。だからあなたの約束の中で解決メソッドを呼び出さなければなりません;)それが助けてくれたら教えてください:) –
compileEntryが単に長時間実行する関数である場合、あなたはそれを非同期的に書くことができませんWeb Workersのようなものです。これを行う正確な方法は、JavaScript環境によって異なります。ブラウザの場合は、Webワーカー、あるいはおそらくはsetTimeoutを使用して、インクルードメントでコンパイルの一部を実行するものがあります。これがある種の "コールバック"または "onload"引数を持つコアのサードパーティ関数を呼び出した場合、それを使用できます。 – Katana314