我今天學到了什麼:
定義:非同步程式設計允許 JavaScript 執行任務而無需等待上一個任務完成。
使用案例:進行 API 呼叫或其他耗時的操作。
好處:透過在等待回應時執行其他任務來提高效率。
承諾狀態:
半島:初始狀態,等待結果。
已解決:操作成功。
已拒絕:操作失敗。
方法:
.then():當 Promise 解決時執行。
.catch(): 當promise被拒絕時執行。
.finally(): 無論promise是resolved還是rejected都會執行。
承諾範例
const fetchData = () => { return new Promise((resolve, reject) => { let success = true; // Simulating success or failure setTimeout(() => { success ? resolve("Data fetched!") : reject("Failed to fetch data."); }, 2000); }); }; fetchData() .then((data) => console.log(data)) // Output: Data fetched! .catch((error) => console.error(error)) .finally(() => console.log("Operation completed."));
非同步/等待範例:
const fetchDataAsync = async () => { try { const data = await fetchData(); // Wait for the promise to resolve console.log(data); // Output: Data fetched! } catch (error) { console.error(error); } finally { console.log("Operation completed."); } }; fetchDataAsync();
5.現實生活類比:
6.Promise.all
const promise1 = Promise.resolve("Task 1 completed"); const promise2 = Promise.resolve("Task 2 completed"); Promise.all([promise1, promise2]) .then((results) => console.log(results)) // Output: ["Task 1 completed", "Task 2 completed"] .catch((error) => console.error(error));
const fetchDataFromAPI = async () => { try { const response = await fetch("https://jsonplaceholder.typicode.com/posts"); const data = await response.json(); console.log(data); } catch (error) { console.error("Error fetching data:", error); } }; fetchDataFromAPI();
亮點
到目前為止,這是一趟美好的旅程。
第10天著火
以上是我的 React 之旅:第 9 天的詳細內容。更多資訊請關注PHP中文網其他相關文章!