非同步编程,任务独立执行,不会互相 block。
可以透过 Promise 处理操作结果,并执行 callbacks。
const axios = require('axios')function callAPI(url) { return new Promise((resolve, reject) => { axios.get(url) .then(res => { resolve(res.data) }) .catch(err => { reject(err) }) })}callAPI('https://api.example.com/data') .then(data => { console.log(data) }) .catch(err => { console.log(err) })
callAPI return Promise
使用 axios.get
根据结果调用 resolve 还是 reject
callAPI(url)
成功:.then (callback)
失败:.catch (callback)
async:标记 function
await:等待 Promise
不使用 .then 和 .catch
搭配 try 和 catch
async function callAPI(url) { try { const res = await axios.get(url) return res.data } catch (err) { throw err }}async function fetchData() { try { const data = await callAPI('https://api.example.com/data') } catch (err) { console.error(err) }}fetchData()
async/await 让程式码简洁,但仍基于 Promise 处理非同步操作。