umijs / umi-request

A request tool based on fetch.
2.2k stars 336 forks source link

request.extendOptions 如何能仅在当前实例下生效 #209

Open daisybaicai opened 3 years ago

daisybaicai commented 3 years ago

Reproduction link

Edit on CodeSandbox

Steps to reproduce

1.点击002request timeout 为默认设置的30000 2.点击001request timeout 设置为200 3.点击003request timeout 设置为200

What is expected?

希望点击003request时,timeout还是30000

What is actually happening?

点击003request timeout 设置为200


根据https://github.com/umijs/umi-request/blob/master/README_zh-CN.md#%E6%9B%B4%E6%96%B0%E6%8B%93%E5%B1%95%E5%AE%9E%E4%BE%8B%E9%BB%98%E8%AE%A4%E5%8F%82%E6%95%B0

所示,使用了确实默认参数得以改变,如何使用使得只在001request设置时有效,后续还是原来的默认timeout呢

daisybaicai commented 3 years ago

在使用后再恢复是一种办法,但有没有别的更好的方法?

  const handleOne = () => {
    console.log("one");
    const newRequest = request;
    newRequest.extendOptions({
      timeout: 200
    });
    newRequest("https://www.mocky.io/v2/5cc8019d300000980a055e76", {
      method: "get"
    }).then(() => {
      console.log("one success");
    });
   // 在使用后再恢复
    // newRequest.extendOptions({
    //   timeout: 30000
    // });
  };