微信小程序app.js的onLaunch执行完之后再执行Page的onLoad & 小程序onLaunch和onLoad执行顺序

需求

在微信小程序分享页面时,打开页面按理应该是先走完app.jsonLaunch onShow执行分享页面onLoadonShow;但现因为app.jsonLaunch异步操作,在等待返回值的时候Page里的onLoad事件就已经执行了。

想要的结果

App onLaunch -> Page onLoad -> App onLaunch sucess callback-> Page onLoad

具体实现案例

1、app.js

js 复制代码
//app.js
 App({
  onLaunch () {
   wx.request({
    url: '接口', //仅为示例,并非真实的接口地址
    data: {
    },
    success(res)=> {
    this.globalData.haveLoginFlag= res.data.haveLoginFlag;
     // 所以此处加入 callback 以防止这种情况
     if (this.checkLoginReadyCallback){
      this.checkLoginReadyCallback({haveLoginFlag:res.data.haveLoginFlag});
     }
    }
   })
  },
  globalData: {
   haveLoginFlag: false
  }
 })

2、分享页面的page

js 复制代码
const app = getApp()
  onLoad() {
  //判断app.js onLaunch是否执行完毕
    if (app.globalData.haveLoginFlag) {
      const { spuId, selectedAddr } = this.data;
      const newAddr = wx.getStorageSync('addressMsg');
      if (selectedAddr.addressId != newAddr?.addressId) {
        this.getDetail(spuId);
      }
    } else {
      app.checkLoginReadyCallback = res => {
      if(res.haveLoginFlag){
        const { spuId, selectedAddr } = this.data;
        const newAddr = wx.getStorageSync('addressMsg');
        if (selectedAddr.addressId != newAddr?.addressId) {
          this.getDetail(spuId);
         }
        }
      }
    }
  }

相关文章

基于ElementUi再次封装基础组件文档


基于ant-design-vue再次封装基础组件文档


vue3+ts基于Element-plus再次封装基础组件文档

相关推荐
ZiYiMing4 小时前
miniprogram-automator 在 2026 年还能用吗?——官方 SDK 三处硬伤的排查与重建
微信小程序
拖孩7 小时前
一个人 + AI 做的小程序,上线 15 天赚了 10 块 5
前端·后端·微信小程序
show43310 小时前
2026微信小程序创作工具生态技术趋势:从单一功能到AI整合型平台演进
人工智能·微信小程序·小程序
PHP实战开发录1 天前
微信小程序多环境配置混用排查记录
微信小程序·php·开发·接口隔离原则
zhangminghuan2 天前
微信小程序开发核心知识点全景解析(前端必备硬核基础)
前端·微信小程序·小程序
sltin2 天前
需求到落地:我如何在微信小程序里实现证件照换底、隐私打码与水印相机
数码相机·微信小程序·小程序
咸虾米_3 天前
小程序流量主哪种广告最赚钱?各类广告收益与实操建议
微信小程序·小程序·小程序开发·流量主广告
show4335 天前
2026微信小程序视频转文字多语种识别引擎技术选型:22种方言25种外语挑战
微信小程序·小程序·音视频
MrFlySand_飞沙5 天前
uniapp开发微信小程序实现接入企业微信客服
微信小程序·小程序·uni-app·企业微信