直接写上我的部分代码和我期待的效果,请各路大神帮忙解答下

function(){

   var bl = this.openLogin()

   //因为是wx.request是异步 ,所以这里的bl还没有赋值  请问我该怎么写?

    if (bl) {

        

   } else {

            

   }

}

openLogin:function(){

   var _this = this;

   wx.request({

       url: getApp().globalData.ctPath,

       data: {

           wxOpenid: _this.globalData.openid

       },

       header: getApp().globalData.header,

       success: function (res) {

           if (res.data.user != null) {

               return true;

           }else{

               return false;

           }

       }

   })

}




展开全部
收起
5回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • Bryson

    16人对此回答表示赞同

    Afan这是修改后的代码,你试试

    展开
    16
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 三磷酸腺苷

    12人对此回答表示赞同

    直接用https://github.com/mushan0x0/wxapp-api-interceptors不就得了

    展开
    12
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 祖师爷

    12人对此回答表示赞同

    引入es6-promise,然后使用promise,小程序原生不支持promise

    展开
    12
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 丛林人

    1人对此回答表示赞同

    那个是异步的吧,不能直接把openLogin()返回值赋给bl的,感觉写这个Promise貌似没什么用啊????你在success回调里调用你下一步操作的函数好了

    展开
    1
    7回复
    发布于 6年前

    评论(7)

    收起评论

    • 吴静怡 2019-02-03 11:01

      官方现在支持async/await了?

      回复
    • 喜怒无常 2019-02-05 10:14

      取消转ES5或者装一下regeneratorRuntime试试?

      回复
    • 裸奔的花生 2019-02-07 22:03

      还是不行不弄了我换个逻辑绕过去吧

      回复
    • zqsg走一波 2019-02-09 22:36

      要把ES6转ES5取消勾选

      回复
    • 雪先生 2019-02-11 22:20

      不行啊报错了

      回复
    • Adrian 2019-02-13 22:31

      那就用async/await吧。

      回复
    • Andrew 2019-02-15 13:50

      我知道写在success里可以用但是这个方法可能有比较多的页面要调用我就想提取出来然后各个页面根据true/false来判断操作不知道能不能实现

      回复
  • 公子舒夜

    1人对此回答表示赞同

    使用es6语法

    展开
    1
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部