點燈坊

失くすものさえない今が強くなるチャンスよ

模擬 API 延遲時間

Sam Xiao's Avatar 2021-05-21

為了模擬慢速 API 或 API 回傳資料量大,可使用 ctx.delay() 模擬 API 延遲時間。

Version

MSW 0.28.2

API Function

api/getBook.js

import axios from 'axios'

export default id => axios.get(`/book/${id}`)

使用 axios.get() 呼叫 API。

Mock Function

mock/getBook.js

import { rest } from 'msw'

export default rest.get('/book/:id', (req, res, ctx) => res(
  ctx.status(200),
  ctx.delay(5000),
  ctx.json({
    'title': 'FP in JavaScript',
  })
))

第 5 行

ctx.delay(5000),

res() 內使用 ctx.delay() 設定延遲時間。

Conclusion

  • 只要在 res() 使用 ctx.delay() 就可設定延遲時間

Reference

Mock Service Worker, delay()