Comments (4)
异步方法加锁
const fetchData = fns.lock(function (unlock, num) {
console.log(num)
setTimeout(function () {
unlock()
}, 1000)
})
fetchData(1)
fetchData(2)
setTimeout(function () {
fetchData(3)
}, 1500)
/**
* Print
*/
> 1
> 3
异步方法代理
const getSetting = fns.delegator(function (done) {
console.log('wx.getSetting')
wx.getSetting({
success: done
})
})
/**
* 以下方法会同时回调
*/
request(function (res) { })
request(function (res) { })
request(function (res) { })
/**
* Print
*/
> wx.getSetting
限制并行请求数,超出排队
const request = fns.queue(function (next, config) {
config.complete = (function (fn) {
return function (res) {
try {
fn && fn(res)
} finally {
next();
}
}
})(config.complete);
return wx.request(config);
}, 5)
from wxpage.
这几个方法都是腾讯视频小程序的请求优化用到的,在wxpage上没有移除:
lock
: 给调用方法加锁,异步方法阻塞性调用
queue
: 异步方法分批串行调用,一般用于现在并发请求数
delegator
: 异步方法并发调用时,使用某个作为代理,一般用于相同请求的复用
from wxpage.
懂了,哪里有这几个方法的用法和实例?我看源码觉得这几个函数如果想正常使用,需要传进来的函数参数做调整,有点强耦合了
from wxpage.
谢谢
from wxpage.
Related Issues (20)
- 小程序体验提示存在定时器未跟随页面回收 HOT 5
- this.$cache方法中不能调用$route么? HOT 1
- 支持分包配置么? HOT 10
- this.$setData()不支持回调? HOT 2
- this.$cache怎么删除缓存 HOT 1
- 大大能否考虑添加typescript支持呢 HOT 1
- 个人原因 HOT 4
- 请问extendPageBefore和extendPageAfter的区别以及注意事项? HOT 1
- $session 之类的辅助函数能否单独引用 HOT 1
- 关于npm引入wxpage在小程序里使用的问题 HOT 18
- onAppShow只执行一次 HOT 5
- 请问这段代码是什么意思啊?完全看不懂 HOT 2
- 库中无用代码的优化 HOT 9
- QQ小程序截至0.1.27版本仍需要补全页面json HOT 7
- 请问,有木有跨级多层组件的通讯,props传递的方案呀 HOT 2
- session的疑问 HOT 3
- queue函数的疑问 HOT 2
- component.js函数的疑问
- $name 和 $curPageName() 的疑问
- 希望大神有时间修改下,跳转有时失效的问题 HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wxpage.