實務上有時為了模擬慢速 API 或回傳大量資料,會想暫時手動 Delay 一段時間,這種常見需求該如何實現呢 ?
Version
Vue 3.0.11
sleep()
import axios from 'axios'
import { pipe, always, andThen as then } from 'ramda'
import { sleep } from 'wink-fp'
export default pipe(
always(3000),
sleep,
then(() => axios.get('/src/api/books.json'))
)
使用 pipe()
組合 anonymous function:
always(3000)
:準備所延遲 mssleep
:延遲一段時間再執行,會回傳 Promisethen(() => axios.get('/src/api/books.json'))
:實際執行 Axios 呼叫 API
Conclusion
pipe()
所組合的 anonymous function 也能直接加上export default
將其匯出sleep()
回傳為 Promise,因此呼叫 API 的 Axios 必須包在then()
內