收藏
回答

小程序异步转同步

问题模块
API和组件

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

回答关注问题邀请回答
收藏

13 个回答

  • Albert Einstein
    Albert Einstein
    2017-10-18

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

    2017-10-18
    赞同
    回复
  • Freedom
    Freedom
    2017-11-16

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

    2017-11-16
    赞同
    回复
  • 皛白💫💫
    皛白💫💫
    2017-11-08

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

    2017-11-08
    赞同
    回复
  • 旅途
    旅途
    2017-11-08

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

    2017-11-08
    赞同
    回复
  • 皛白💫💫
    皛白💫💫
    2017-10-19

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

    2017-10-19
    赞同
    回复
  • 平风
    平风
    2017-10-19

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

    function f(code, callback) {

        WxLogin({code: code}, res=>{

            GetList({id: res, res1 => {

                callback(res1);

            }

        }

    }

    如果不喜欢上面这种嵌套的方式,可以采用promise将代码改造成login(...).then(getList).then(callback)这样的形式,但仍然还是异步调用,你应该还是没有正确理解异步回调的处理方法,此时不建议接触promise,它会让你更加一头雾水。

    2017-10-19
    赞同
    回复 1
    • 髙-玉慧
      髙-玉慧
      2019-07-02

      promise,我对这个写法不是太懂,但是不想嵌套,因为我这个嵌套会比较乱,所以还有没有更好的解决方案啊,我现在就是拿openid然后进行别的查询,现在不按顺序走就出现很多错误

      2019-07-02
      回复
  • 皛白💫💫
    皛白💫💫
    2017-10-18

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

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

    2017-10-18
    赞同
    回复
  • 平风
    平风
    2017-10-18

    f函数中res由回调产生,就不能直接return,可以采用下面的方法:

    function f(callback) {

        getList({}, (res)=>{

            callback(res)

        }

    }


    // 使用f:

    f((res)=>{

        console.log(res);

    });


    2017-10-18
    赞同
    回复
  • 皛白💫💫
    皛白💫💫
    2017-10-18


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

    2017-10-18
    赞同
    回复
  • 第五日凌晨
    第五日凌晨
    2017-10-18

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

    2017-10-18
    赞同
    回复

正在加载...

登录 后发表内容