求问wx.request异步怎么实现串行的业务?谢谢
发布于 5 年前 作者 vxiang 3526 次浏览 来自 问答

大家好!求问个问题。谢谢。

我这边的需求是:

在app.js的onLaunch( )中用wx.request请求服务端获取用户在本系统中的userid,并存储到storage中(setStorageSync( ))然后在小程序首页的index.js的onLaunch( )中调用getStorageSync(‘userID’)来获取这个数据,然后请求服务端获取更多数据;

现在面临的问题是:

wx.request是异步的,所以在index.js中再次请求服务端的时候,可能app.js并没有完成请求并设置storage;

那么这种需求该怎么实现呢?谢谢

tips:

因为是跨页面js,所以不能让后续的操作在wx.request的success体中,不知道怎么实现这样的串行业务操作了。

1 回复

promise

app.js中readuserid方法

readuserid(){

var that = this

return new Promise(function (resolve, reject){

wx.request({

url: ‘接口地址’,

success: res => {

wx.setStorage({

key: ‘userID’,

data: res.data.data,

})

resolve(res)

},

fail : res=>{

reject(res)

}

})

})

}

index.js中

app.readuserid().then(function(res){

你的代码

})

回到顶部