function promise(fn) {
return function (obj = {}) {
return new Promise((resolve, reject) => {
obj.success = res => resolve(res);
obj.fail = res => reject(res);
fn(obj);
})
}
}
...
調(diào)用方式:
utils.promise(wx.request)({ url: ... }).then(response => { ... }) ...
.elem { /* 元素本身添加樣式 */
position: relative; /* 為了后面的偽元素以本元素為定位基準(zhǔn) */
z-index: 10; /* 渲染在偽元素之上 */
/* 其它樣式,大小,字體等 */
}
.elem::after { /* 給元素添加::after偽元素并設(shè)置為半透明:*/
content: "";
position: absolute;
left: 0;
background-color: white;
opacity: 0.2;
/* 其它樣式,大小應(yīng)和主元素一致 */
}
/* 僅供測(cè)試,發(fā)布版請(qǐng)刪除 */
view,icon,text,rich-text,progress,image,button,textarea,open-data,navigator,canvas,checkbox,form,input,label,picker,radio,slider,switch {
outline: 1px dashed lightblue;
}
.mainbg {
background: -webkit-linear-gradient(left,#18b6ff,#aa29ff);
background: linear-gradient(left,#18b6ff,#aa29ff);
}
{ height: calc(100vh - 300rpx); }