容易犯错的地方
componentDidMount() {
let isLogin = this.isLogin() // 返回的是一个promise,promise里封装的有我们返回的结果, 但是没法直接同步用
if (isLogin) {
// fetch username
} else {
// jump to login
async isLogin() {
try {
let ret = await storage.load({
key: Common.loginState,
return ret ? true : false
} catch (error) {
console.log('00')
return false
componentDidMount() {
let isLogin = this.isLogin() // 返回的永远是3, 因为是异步,在进入 then, catch 之前,isLogin就调用完毕了,执行到 return 3结束
if (1) {
// fetch username
} else {
// jump to login
isLogin() {
storage.load({
key: 'loginState',
.then(ret => {
return 1
.catch(error => {
return 2
return 3