小程序异步转同步
发布于 5 年前 作者 ping45 4665 次浏览 来自 问答

大家有没有一些好的办法吧异步转为同步呢?有些参数是需要调用一个方法后返回,另一个函数使用,异步处理老是获取不到这个返回值    

10 回复

如果非要把一个异步方法改为同步的话,可以使用类似 while(true) 的方法来等待。但是不建议这么做,推荐使用 Promise。

亲求教  这样怎么写 f()方法  怎么返回

非常感谢你   成功了   在请教个问题

如果这样写  这里该怎么返回   并且这个id是有值的 可以在下一步使用

请问下,app.js中通过wx.login返回的code换取的sessionKey,在index.js中获取不到的异步问题怎么解决?

请问下,最终是怎么解决这个问题的?app.js里面请求的数据openID,index.js一直获取不到

好的 谢谢大神了,小白一个 , js不是很懂

我没有在app.js里调用  哪个页面需要登录在哪个页面调用的

当需要使用异步调用返回的数据时,相关的代码需要写到回调函数中,像这样:

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);

});

同一个页面函数嵌套就行了,不同页面请参考app.js中userInfoReadyCallback的回调写法

回到顶部