美文网首页
2018-01-24 promise与beforeRouteLe

2018-01-24 promise与beforeRouteLe

作者: Roy_skywalker | 来源:发表于2018-01-24 20:58 被阅读0次

    今天的认真度70%。

    最近的工作状态有点不是太好,生病太久,容易犯困和疲倦。

    在做6.2的收尾工作,以及官网的收尾工作。

    今天解决了一个bug,就是promise与beforeRouteLeave的结合使用时遇到的一点小问题。

    场景:

    修改了表格(或其它数据),在未保存的情况下点击了返回或后退,总之是要离开本页面前,利用钩子函数进行拦截,提示:“是否需要保存”。点击‘是’,保存成功后再离开;点击‘否’,跳过保存直接离开。

    这里的难点在于,怎样判断是否保存成功,因为向后台发送保存请求毕竟是异步的。

    如果用嵌套来做,就用不到iview的Modal.confirm()方法,会增加步骤的复杂度。

    而如果要用Modal.confirm(),最好使用promise。

    之前虽然一直有用到,但是总是无论保存是否成功,总是很快的离开了页面,后来才知道:

    promise.then(callback()) 的callback()其实也是接收参数的,这个参数就是promise对象返回的值,如果在保存不成功时我们让它返回false,再结合beforeRouteLeave钩子函数中的next(false)方法,就能让路由留在原地,不发生跳转。

    相关文章

      网友评论

          本文标题:2018-01-24 promise与beforeRouteLe

          本文链接:https://www.haomeiwen.com/subject/edlpaxtx.html