小程序异步转同步
大家有没有一些好的办法吧异步转为同步呢?有些参数是需要调用一个方法后返回,另一个函数使用,异步处理老是获取不到这个返回值
大家有没有一些好的办法吧异步转为同步呢?有些参数是需要调用一个方法后返回,另一个函数使用,异步处理老是获取不到这个返回值
当需要使用异步调用返回的数据时,相关的代码需要写到回调函数中,像这样:
function f(code, callback) {
WxLogin({code: code}, res=>{
GetList({id: res, res1 => {
callback(res1);
}
}
}
如果不喜欢上面这种嵌套的方式,可以采用promise将代码改造成login(…).then(getList).then(callback)这样的形式,但仍然还是异步调用,你应该还是没有正确理解异步回调的处理方法,此时不建议接触promise,它会让你更加一头雾水。
f函数中res由回调产生,就不能直接return,可以采用下面的方法:
function f(callback) {
getList({}, (res)=>{
callback(res)
}
}
// 使用f:
f((res)=>{
console.log(res);
});