Die defer()
Methode von DisposableStack
Instanzen nimmt eine Rückruffunktion an, die aufgerufen wird, wenn der Stack entsorgt wird.
onDispose
Eine Funktion, die aufgerufen wird, wenn der Stack entsorgt wird. Die Funktion erhält keine Argumente.
Keiner (undefined
).
TypeError
Wird ausgelöst, wenn onDispose
keine Funktion ist.
ReferenceError
Wird ausgelöst, wenn der Stack bereits entsorgt ist.
Der Hauptzweck von defer()
besteht darin, einen Bereinigungs-Callback zu registrieren, der nicht spezifisch für die Entsorgung einer bestimmten Ressource ist. Wenn der Callback spezifisch für eine Ressource ist, sollten Sie use()
oder adopt()
verwenden. Sie können defer
auch verwenden, wenn die Ressource nicht in Ihrem Code beansprucht wird:
function consumeReader(reader) {
using disposer = new DisposableStack();
disposer.defer(() => reader.releaseLock());
// Do something with reader
}
Beispiele Verwendung von defer()
Diese Funktion setzt ein einfaches Sperre, um zu verhindern, dass mehrere asynchrone Operationen gleichzeitig ausgeführt werden. Die Sperre wird freigegeben, wenn die Funktion abgeschlossen ist.
let isLocked = false;
async function requestWithLock(url, options) {
if (isLocked) {
return undefined;
}
using disposer = new DisposableStack();
isLocked = true;
disposer.defer(() => (isLocked = false));
const data = await fetch(url, options).then((res) => res.json());
return data;
}
Spezifikationen Browser-Kompatibilität Siehe auch MDN-Feedback-Box War diese Ãbersetzung hilfreich?
Diese Seite wurde automatisch aus dem Englischen übersetzt.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4