9.2-12.25微信小程序开发经验

本文分享了作者在微信小程序开发中遇到的挑战和学习经验,重点讲述了Promise的使用来处理异步操作,小程序的生命周期,冒泡问题,获取经纬度的限制以及清除标记值的重要性,提醒开发者在开发中避免某些常见错误。
摘要由CSDN通过智能技术生成

这几个月的小程序开发可谓是把我虐的不要不要的。好在还是有点收获
一丶Promise
这个在小程序中经常遇到,刚开始完全不懂这个干什么用的。后面经过了解,这是一个解决回调地狱(Callback hell)而产出的解决方法
说的回调函数,首先要了解编程中异步与同步的概念
同步:先执行A执行完在执行B,这个过程说白了就是按照顺序执行。效率很低。值得注意的是JS就是单线程,也就是所谓的同步
异步:在执行A过程中会去执行B 这样效率就提升了效率,但是会有一个问题,加入线程A执行完的结果的a1是线程B所需的参数,那么程序就需要等待A执行完B才能执行。这个是参数问题。
还有一个问题,我们在客户端能够获取到信息,都是这样一个流程,客户端发送请求(浏览器),服务器(idea)接收客户端发送过来的请求,进行处理(增删改查)然后将处理好数据在返回给客户端(浏览器) 那么这个过程,前台可能还会发送请求其他,当我们像后台发送请求,请求还没有到底前台时,后台又发送了一个请求,这个过程会异步(姚哥经常说我犯这个错误)。
所有我们不能再请求中调用另一个请求,这样会造成异步。为什么说这种是异步,我们是不是在请求里面有请求时,第二个请求时需要第一个请求完成时参数,才能进行第二个请求的运行,所以这就是异步了
不过有了promise可以解决这个问题。
Promise 是异步编程的一种解决方案
特点
对象的状态不受外界影响 (3种状态)
Pending状态(进行中)
Fulfilled状态(已成功)
Rejected状态(已失败)
一旦状态改变就不会再变 (两种状态改变:成功或失败)
Pending -> Fulfilled
Pending -> Rejected
用法
1.1创建Promise实例
var promise = new Promise(function(resolve, reject){
// … some code

if (/* 异步操作成功 */) {
    resolve(value);
} else {
    reject(error);
}

})
Promise构造函数接受一个函数作为参数,该函数的两个参数分别是resolve和reject。它们是两个函数,由JavaScript引擎提供,不用自己部署。
  resolve作用是将Promise对象状态由“未完成”变为“成功”,也就是Pending -> Fulfilled,在异步操作成功时调用,并将异步操作的结果作为参数传递出去;而reject函数则是将Promise对象状态由“未完成”变为“失败”,也就是Pending -> Rejected,在异步操作失败时调用,并将异步操作的结果作为参数传递出去。
  
then
 Promise实例

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值