全网整合营销服务商

营销型网站+SEO优化+关键词快排=一站式服务

免费咨询热线:15959292472

[葫芦岛seo公司找久澳]Proxy封装小程序的异步调用

  上回写到:

  

 

  没看上回的同学,在这里:在微信小程序中使用 async/await

  

function wxPromisify(fn) {
 return async function(args) {
 return new Promise((resolve, reject) =>▲•◆; {
 fn({
 .▽○▪..(args 

 

   {}), success▲◇•▲: res => resolve(res), fail: err => reject(err) }); }); }; } export function toAsync(names) { return (names

   []) ▲◆.map(name =>■△; ( { name, member▽•▷=: wx[name] } )) .filter(t => typeof t.member === "-◁•;function"★☆;) .reduce((r, t) => { r[t◁•.name] = wxPromisify(wx[t.name]); return r■▷▷◇; }, {})…▲•; }

// pages/somepage/somepage.jsimport { toAsync } = require("▪…•=;△○▲../../utils/async");
// ...const awx = toAsync(["login", "△▪■;request"]);await awx.login();await awx.request({▪•...})=■;

 

  这不已经封装过了吗?

  这回写的是不一样的封装。因为,一个小程序里要写好多个 toAsync 调用▲◁…,北票市小程序制作公司真的很烦呐!

  


 

  能不能一次封装,[葫芦岛seo公司找久澳]到处调用?能!把所有用到的方法都在初始化的时候封装起来○★=。可是□▽•,难免会有遗漏••△★。公司做seo学徒白山市小程序开发哪家好

  能不能一次封装☆▪☆,到处调用,还不需要初始化?

  能!祭出 Proxy 大神:

  

// utils/asyncjsfunction wxPromisify(fn) { .◇….. } 
 // 前面已经定义过了export function asyncProxy(target) { 
 return new Proxy(target, { 
 cache◇▲: {}, 
 get(it○▼, prop) { 
 const aFn = this.cache[prop]★★▽=; 
 if (aFn) { return aFn; } 
 const v = it[prop]▲▷; 
 if (typeof v !== "function"○◇•◇;) { 
 return v;
 } 
 return this.cache[prop] = wxPromisify(v)□▲•;
 }
 });
}
// app▽★.jsimport { asyncProxy } from "./utils/async"▷•;;
App({ onLaunch•▼△■: function() {
 wx▪▽=-.awx = asyncProxy(wx)●■; // ..○○■..
 }
})
// pages/somepage/somepage// ○★...const { awx } = wx;await awx▪▼★▲.login();await awx.request({☆▽..▲▪▪.});

 

  解释:

  因为 awx 是代理的 wx 对象,调用 awx.login() 的时候●▲,实际是先调用代理的 get(wx, "□•;login")■▪■,找到用来代替 wx.login 的东西●…。

  根据上面代码里的逻辑,先从 cache 里找使用 wxPromisify() 封装的结果,普洱市小程序制作公司若有,直接返回;若没有,先封装成 Promise 网络的函数,存入 cache…-,再返回••。

  直观一点描述▪-,大概是这样:

  

awx▽-.login();
 ^^^^^^ get(wx•…, "▼●☆;login")

 

  推荐教程:《微信公众号》

  以上就是Proxy封装小程序的异步调用的详细内容-▲,更多请关注久澳传媒编程栏目其它相关文章□◇△!

[葫芦岛seo公司找久澳]Proxy封装小程序的异步调用

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。