最新公告
  • 欢迎您光临欧资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 不能网线把称之为异步竞态解决办法解决办法=CancelToken.source

    你一定遇到过这样类似的场景:多个标签页点击切换功能写代码调试找段错误,如果用户点击频繁,很有可能当前页面显示了其他页面的数据。

    因为每个接口返回信息的时间不同,所以不能保证第一个请求会先返回数据,所以很有可能其他页面的数据会出现在第一页。这种异步情况的术语称为异步竞争。

    这时候肯定有读者会说这不容易,我可以很轻松的为大家想出几个解决方案。

    节流,防抖,加Loading!

    这些方法虽然可以解决问题,但都是治标不治本的办法,也会影响用户体验。其实还有一种方法可以完美解决这个问题:取消请求。

    当然,这个取消请求只是不继续处理接口的后续响应写代码调试找段错误,并没有真正取消请求。毕竟,如果请求已经发送了,我们就不能沿着网线把它追回来。

    我们以 axios 为例,看看如何取消请求:

    常量 CancelToken = axios.CancelToken;

    常量源 = CancelToken.source();

    axios.get(‘/user/12345’, {

    取消令牌:source.token

    }).catch(函数(抛出){

    如果(axios.isCancel(抛出)){

    console.log(‘请求取消’, throwed.message);

    } 别的 {

    // 处理错误

    axios.post(‘/user/12345’, {

    名称:’新名称’

    }, {

    取消令牌:source.token

    // 取消请求(message参数可选)

    source.cancel(‘操作被用户取消。’);

    用法很简单。您可以使用此方法来解决可能出现异步竞态条件的情况。简单易用,不会影响用户体验,封装代码后即可使用。

    站内大部分资源收集于网络,若侵犯了您的合法权益,请联系我们删除!
    欧资源网 » 不能网线把称之为异步竞态解决办法解决办法=CancelToken.source

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    欧资源网
    一个高级程序员模板开发平台

    发表评论