小程序开发-11-Promise正确用法与函数签名设计技巧

配置taBar

"tabBar": {
 "selectedColor": "#000000",
 "backgroundColor": "#ffffff",
 "color": "#c7c7c7",
 "list": [
   {
     "selectedIconPath": "/images/tab/classic@highlight.png",
     "pagePath": "pages/classic/classic",
     "text": "流行",
     "iconPath": "/images/tab/classic.png"
   },
   {
     "selectedIconPath": "/images/tab/book@highlight.png",
     "pagePath": "pages/book/book",
     "text": "书籍",
     "iconPath": "/images/tab/book.png"
   },
   {
     "selectedIconPath": "/images/tab/my@highlight.png",
     "pagePath": "pages/my/my",
     "text": "喜欢",
     "iconPath": "/images/tab/my.png"
   }
 ]
}

airbnb 编码规范

可以应用esLint,在github上aribnb的项目里

  • 对象简写
var a = 1
//bad
this.setData({
 a: a
})
//good
this.setData({
 a
})
  • 方法简写
method:{
  //bad
 add: function(){
     ...
 }
 //good
 add(){
     ...
 }
}
  • 能用const尽量不要用let,能用let不要用var

纯粹回调、Promise与async、await

纯粹回调会陷入回调地狱,剥夺函数return的能力

promise 多个异步函数合并,不需要层层传递callback

async await 最佳处理异步方式,小程序不支持

Promise的本质与用法

本质

? Promise是一个对象,可以用来保存状态。它的状态有 padding,fulfilled,rejected,状态一点修改就 凝固了。即已成功不能改成已失败,过程也是不可逆的。

用法

//封装微信的request方法
http里的代码
export default class Http{
 request(){
     return new Promise((resolve,reject)=>{
         _request(...);
     })
 }
 _request(url,resolve,reject,data={},method="GET"){
      resolve(...);
     reject(...)
 }
}
//classicModel里调用
import Http from '../utils/http'
class ClassicModel extends Http{
 this.request(...).then(res=>{...}).catch(err>{...});
}

小程序开发-11-Promise正确用法与函数签名设计技巧

上一篇:小程序开发-12-组件高级应用


下一篇:没有基础也能写个小程序