ES6 Promise 自体はキャンセルをサポートしていません。ただし、ECMAScript 標準の Promise にキャンセルを追加する作業が進行中です。
Promise キャンセルの提案は、JavaScript の次期 ES2021 バージョンに含まれる WHATWG 仕様で作成されています。この提案では、Promise のキャンセルに使用できる新しい AbortController インターフェイスが導入されています。
<br>const abortController = new AbortController();<br>const Promise = fetch('https://example.com', {<br> signal: abortController.signal<br>});</p> <p>abortController.abort();<br></ pre><br><p>最新の JavaScript では、AbortController を使用して、フェッチ リクエストやその他の非同期操作などの Promise ベースのタスクをキャンセルできます。</p></p> <p><p> AbortController を使用できない場合は、非同期フォーム送信やネットワーク リクエストなど、ユーザーが開始した操作に対して独自のキャンセル メカニズムを実装することができます。</p><br><p><strong>JavaScript でのカスタム キャンセル メカニズムの作成</strong>: 次の方法で簡単なキャンセル メカニズムを実装できます:</p><br><ul><br><li>操作。</li><br><li>キャンセルする非同期タスクに cancelingToken を渡します。</li><br><li>ユーザーがキャンセルを開始したときに cancelingToken をキャンセルします。< /li><br></ul><br><p>CancelToken は、Promise を拒否する cancel() メソッドを使用して Promise として実装できます。以下に例を示します:</p><br><pre class="lang-js prettyprint-override"><br>const cancelToken = new Promise((resolve, detect) => {<br> return { </p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">cancel: () => reject(new Error('Operation has been cancelled.'))
}
});
次に、次のように、キャンセルしたい非同期タスクに cancelToken を渡すことができます:< ;/p>
<br>const asyncTask = (cancellationToken) => {<br> // ここに非同期タスクを実装します<br> return fetch('https://example.com', {</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">cancel: () => reject(new Error('Operation has been cancelled.'))
});
}
そして最後に、次のように cancel() メソッドを cancelToken で呼び出すことで、非同期タスクをキャンセルできます。 :
<br>cancellationToken.cancel();<br>
サードパーティ ライブラリの使用: サードパーティ ライブラリを使用してキャンセルを実装したい場合は、bluebird や rxjs などのライブラリを使用できます。以下は bluebird を使用した例です:
<br>const Promise = require('bluebird');<br>const cancelToken = new Promise . cancelToken();</p><p>const asyncTask = () => {<br> return fetch('https://example.com', {</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">signal: cancellationToken.signal
});
}
cancellationToken.cancel();
< ;/pre>
これらは、JavaScript でキャンセルを実装する方法のほんの一部です。最適なアプローチは、特定のニーズによって異なります。
以上が約束はキャンセルできますか? JavaScript のキャンセルメカニズムの詳細の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。