问题

1.小程序云开发查询数据库where查询无效_解决方案

原因是权限不对,在云开发控制台修改权限。

 

2.Promise写法的问题

初次用Promise,还需再去看看文档,终于不用写层层回调了

console.log('1.start');
var p1=new Promise(function test(resolve,reject){
    setTimeout(function(){
        //resoleve或reject是必须的
        //resolve和reject必须写在异步函数里面
        //否则会导致之后的then没效果。。
        if(true){
            resolve('ok');
        }else{
            reject('failed');
        }
        console.log('2.ok');
    },2000);
});
var p2=p1.then(function(result){
    console.log('3.end'+result);
})

 3.reduce的写法

var tmp=[1,2,3,4,5]
var tabWidth=tmp.reduce((pre,cur)=>{
    //错误写法,函数加了花括号以后要用return pre+cur; 
    pre+cur;
},0);
//正确写法1
var tabWidth=tmp.reduce((pre,cur)=>{
    return pre+cur;
},0);
//正确写法2
var tabWidth=tmp.reduce((pre,cur)=>pre+cur,0);

 4.父组件向子组件异步传值,子组件取到空值的解决办法

用小程序的observers方法监听数据变化来解决。

注意这种写法会导致死循环:

Component({
  /**
   * 组件的属性列表
   */
  properties: {
        options:{
            type:Object,
            value:{}
        }
  },
  data: {
  },
  methods: {
  },
    ready:function(e){
    },
    observers:{
        'options':function(options){
            this.setData({
                options:options
            })
        }
    }
})
View Code

正确写法:

Component({
  /**
   * 组件的属性列表
   */
  properties: {
    options: {
      type: Object,
      value: {}
    }
  },
  data: {
    //用另外一个data来保存
    _options: {},
  },
  methods: {
  },
  ready: function (e) {
  },
  observers: {
    'options': function (options) {
      this.setData({
        //用另外一个data来保存
        _options: options
      })
    }
  }

})

 

5.解决遮罩层滑动穿透的问题

参考:https://blog.csdn.net/weixin_39015132/article/details/82284757

 

6.关于回调函数的理解

1.回调函数就像是一个承诺,一定会执行。

2.作用是可以把耗时的数据传回主函数里面。承诺,一定会兑现

转载于:https://www.cnblogs.com/remly/p/10703234.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值