Sliby byly zjevením ve vývoji JavaScriptu, což nám umožnilo užít si asynchronní zpracování a vyhnout se peklu zpětného volání. Mnoho nových rozhraní API, jako je Battery API, Cache API a další, používá slibované API. Jeden fakt, který možná nevíte, je, že můžete přidat then
metoda k jakémukoli objektu, aby byl podobný slibu!
Vytvořme obecný objekt s then
metoda, která přijímá resolve
funkce jako jeho argument:
j = { then: resolve => fetch("/").then(resolve) }
S objektem s then
můžete zavolat then
nebo použijte await
syntaxe:
j.then(res => console.log(res)); // Response {type: "basic", url: "https://davidwalsh.name/", redirected: false, status: 200, ok: true, …} // ... or an await... const response = await j; // Response {type: "basic", url: "https://davidwalsh.name/", redirected: false, status: 200, ok: true, …}
Tato technika je zajímavá a za správných okolností ji lze použít k reprezentaci logického použití.
Hack nebo užitečné? Jak byste využili tuto výhodu then
?