前言这是underscore.js源码分析的第六篇,如果你对这个系列感兴趣,欢迎点击underscore-analysis/watch一下,随时可以看到动态更新。下划线中有非常多很有趣的方法,可以用比较巧妙的方式解决我们日常生活中遇到的问题,比如_.after,_.before,_.defer...等,也许你已经用过他们了,今天我们来深入源码,一探究竟,他们到底是怎么实现的。more指定调用次数(after,before)把这两个方法放在前面也是因为他们俩能够解决我们工作中至少以下两个问题如果你要等多个异步请求完成之后才去执行某个操作fn,那么你可以用_.after,而不必写多层异步回调地狱去实现需求有一些应用可能需要进行初始化操作而且仅需要一次初始化就可以,一般的做法是在入口处对某个变量进行判断,如果为真那么认为已经初始化过了直接return掉,如果为假那么进行参数的初始化工作,并在完成初始化之后设置该变量为真,那么下次进入的时候便不必重复初始化了。对于问题1let async1 = (cb) => {
setTimeout(() => {
console.log('异步任务1结束了')
cb()
}, 1000)
}
let async2 = (cb) => {
setTimeout(() => {
console.log('异步任务2结束
...
继续阅读
(12)