import { request } from './utils/api' App({ globalData: { user: wx.getStorageSync('user') || null }, onLaunch() { this.loginPromise = this.login() }, login() { return new Promise((resolve, reject) => wx.login({ success: ({ code }) => request<{ token: string; user: CoffeeChatUser }>('/api/auth/wechat', { method: 'POST', data: { code } }) .then(({ token, user }) => { wx.setStorageSync('token', token); wx.setStorageSync('user', user) this.globalData.user = user; resolve(user) }).catch(reject), fail: reject })) }, ensureLogin() { return this.loginPromise || this.login() } })