我今天学到了什么:
定义:异步编程允许 JavaScript 执行任务而无需等待上一个任务完成。
使用案例:进行 API 调用或其他耗时的操作。
好处:通过在等待响应时运行其他任务来提高效率。
承诺状态:
Pending:初始状态,等待结果。
已解决:操作成功。
已拒绝:操作失败。
方法:
.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中文网其他相关文章!