zoukankan      html  css  js  c++  java
  • 淘宝小程序使用promise实现onshow等待执行

    最近遇到一个业务场景,需要跳转到下个页面,等用户操作完后,返回当前页面,当前页面的数据可以同步更新用户的操作数据。使用promise对象可以做到这点,promise对象内部保存着一个未来才会结束的事件,并且promise对象的状态只有异步才会触发状态改变(状态改变后无法更改)。刚开始直接在跳转事件内部注册onshow事件,但是出现一个bug,onshow事件只会执行一次,后续就无法再触发手动注册的事件了,可能是淘宝小程序内部实现问题,微信小程序暂时未做测试。后续直接注册一个空的onshow生命周期,在onshow生命周期内部调用需要触发的事件,在需要触发的事件触发后代码才会执行到下一步(代码必须要是同步的,才可以实现这个功能)。

    // 初步实现代码(淘宝小程序有bug版)
    
    async func () {
        // 跳转代码
        const onShowPromise = new Promise((resolve) => {
            this.onShow = () => {
                this.onShow = () => { };   // 将onShow初始化
                resolve();
            };
        });
        await onShowPromise
        // 需要更新的代码
    }
    
    
    // 完善版
    onShow1(){}, // 防止为空
    onShow(){
      onShow1(){}
    }
    async func () {
        // 跳转代码
        const onShowPromise = new Promise((resolve) => {
            this.onShow1 = () => {
                this.onShow1 = () => { };   // 将onShow初始化
                resolve();
            };
        });
        await onShowPromise
        // 需要更新的代码
    }
    

    目前没有遇到任何问题

    NO MAN IS A ISLAND
  • 相关阅读:
    1 从瀑布到敏捷——漫画解读软件开发模式变迁史(转载)
    xshell 常用命令1
    Python---3基础输入方法
    React 初试
    Js 入门文档
    SpringCloud 入门知识篇
    SpringBoot mysql, redis 配置
    工作常用命令
    Java 内置锁 重入问题
    牛顿迭代法, 开根号
  • 原文地址:https://www.cnblogs.com/nomanisaisland/p/14051887.html
Copyright © 2011-2022 走看看