@tarojs/taro-h5 3.6.8 → 3.6.9-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/wxml/IntersectionObserver.js +8 -5
- package/dist/api/wxml/IntersectionObserver.js.map +1 -1
- package/dist/api/wxml/selectorQuery.js +9 -6
- package/dist/api/wxml/selectorQuery.js.map +1 -1
- package/dist/index.cjs.js +15 -11
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +15 -11
- package/dist/index.esm.js.map +1 -1
- package/package.json +6 -6
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import Taro from '@tarojs/api';
|
|
1
2
|
import { findDOM } from '../../utils/index.js';
|
|
2
3
|
|
|
3
4
|
import('intersection-observer');
|
|
@@ -74,11 +75,13 @@ class TaroH5IntersectionObserver {
|
|
|
74
75
|
const nodeList = this._options.observeAll
|
|
75
76
|
? this.container.querySelectorAll(targetSelector)
|
|
76
77
|
: [this.container.querySelector(targetSelector)];
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
78
|
+
Taro.nextTick(() => {
|
|
79
|
+
nodeList.forEach(element => {
|
|
80
|
+
if (!element)
|
|
81
|
+
return;
|
|
82
|
+
this._observerInst.observe(element);
|
|
83
|
+
this._listeners.push({ element, callback });
|
|
84
|
+
});
|
|
82
85
|
});
|
|
83
86
|
}
|
|
84
87
|
relativeTo(selector, margins) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IntersectionObserver.js","sources":["../../../src/api/wxml/IntersectionObserver.ts"],"sourcesContent":["import Taro from '@tarojs/api'\n\nimport { findDOM } from '../../utils'\n\nimport('intersection-observer')\n\ntype TElement = Document | HTMLElement | Element\n\ntype TListener = {\n element: Element\n callback: Taro.IntersectionObserver.ObserveCallback\n}\n\nexport class TaroH5IntersectionObserver implements Taro.IntersectionObserver {\n\n // 自定义组件实例\n private _component: TaroGeneral.IAnyObject\n // 选项\n private _options = {\n thresholds: [0],\n initialRatio: 0,\n observeAll: false\n }\n\n // Observer实例\n private _observerInst: IntersectionObserver\n // 监控中的选择器\n private _listeners: TListener[] = []\n // 参照区域\n private _root: Element | null\n // 用来扩展(或收缩)参照节点布局区域的边界\n private _rootMargin: Taro.IntersectionObserver.RelativeToViewportMargins = {}\n // 是否已初始化\n private _isInited = false\n\n // selector 的容器节点\n protected get container () {\n const container: TElement = (\n this._component !== null
|
|
1
|
+
{"version":3,"file":"IntersectionObserver.js","sources":["../../../src/api/wxml/IntersectionObserver.ts"],"sourcesContent":["import Taro from '@tarojs/api'\n\nimport { findDOM } from '../../utils'\n\nimport('intersection-observer')\n\ntype TElement = Document | HTMLElement | Element\n\ntype TListener = {\n element: Element\n callback: Taro.IntersectionObserver.ObserveCallback\n}\n\nexport class TaroH5IntersectionObserver implements Taro.IntersectionObserver {\n\n // 自定义组件实例\n private _component: TaroGeneral.IAnyObject\n // 选项\n private _options = {\n thresholds: [0],\n initialRatio: 0,\n observeAll: false\n }\n\n // Observer实例\n private _observerInst: IntersectionObserver\n // 监控中的选择器\n private _listeners: TListener[] = []\n // 参照区域\n private _root: Element | null\n // 用来扩展(或收缩)参照节点布局区域的边界\n private _rootMargin: Taro.IntersectionObserver.RelativeToViewportMargins = {}\n // 是否已初始化\n private _isInited = false\n\n // selector 的容器节点\n protected get container () {\n const container: TElement = (\n this._component !== null\n ? (findDOM(this._component) as HTMLElement || document)\n : document\n )\n return container\n }\n\n constructor (component: TaroGeneral.IAnyObject, options: Taro.createIntersectionObserver.Option = {}) {\n this._component = component\n Object.assign(this._options, options)\n }\n\n private createInst () {\n // 去除原本的实例\n this.disconnect()\n\n const { left = 0, top = 0, bottom = 0, right = 0 } = this._rootMargin\n return new IntersectionObserver(entries => {\n entries.forEach(entry => {\n const _callback = this._getCallbackByElement(entry.target)\n const result = {\n boundingClientRect: entry.boundingClientRect,\n intersectionRatio: entry.intersectionRatio,\n intersectionRect: entry.intersectionRect,\n relativeRect: entry.rootBounds || { left: 0, right: 0, top: 0, bottom: 0 },\n time: entry.time\n }\n // web端会默认首次触发\n if (!this._isInited && this._options.initialRatio <= Math.min.apply(Math, this._options.thresholds)) {\n // 初始的相交比例,如果调用时检测到的相交比例与这个值不相等且达到阈值,则会触发一次监听器的回调函数。\n return\n }\n _callback && _callback.call(this, result)\n })\n this._isInited = true\n }, {\n root: this._root,\n rootMargin: [`${top}px`, `${right}px`, `${bottom}px`, `${left}px`].join(' '),\n threshold: this._options.thresholds\n })\n }\n\n public disconnect (): void {\n if (this._observerInst) {\n let listener\n while ((listener = this._listeners.pop())) {\n this._observerInst.unobserve(listener.element)\n }\n this._observerInst.disconnect()\n }\n }\n\n public observe (targetSelector: string, callback: Taro.IntersectionObserver.ObserveCallback): void {\n // 同wx小程序效果一致,每个实例监听一个Selector\n if (this._listeners.length) return\n // 监听前没有设置关联的节点\n if (!this._observerInst) {\n console.warn('Intersection observer will be ignored because no relative nodes are found.')\n return\n }\n\n const nodeList = this._options.observeAll\n ? this.container.querySelectorAll(targetSelector)\n : [this.container.querySelector(targetSelector)]\n\n Taro.nextTick(() => {\n nodeList.forEach(element => {\n if (!element) return\n this._observerInst.observe(element)\n this._listeners.push({ element, callback })\n })\n })\n }\n\n public relativeTo (selector: string, margins?: Taro.IntersectionObserver.RelativeToMargins | undefined): Taro.IntersectionObserver {\n // 已设置observe监听后,重新关联节点\n if (this._listeners.length) {\n console.error('Relative nodes cannot be added after \"observe\" call in IntersectionObserver')\n return this\n }\n this._root = this.container.querySelector(selector) || null\n if (margins) {\n this._rootMargin = margins\n }\n this._observerInst = this.createInst()\n return this\n }\n\n public relativeToViewport (margins?: Taro.IntersectionObserver.RelativeToViewportMargins | undefined): Taro.IntersectionObserver {\n return this.relativeTo('.taro_page', margins)\n }\n\n private _getCallbackByElement (element: Element) {\n const listener = this._listeners.find(listener => listener.element === element)\n return listener ? listener.callback : null\n }\n\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import Taro from '@tarojs/api';
|
|
1
2
|
import { isFunction } from '@tarojs/shared';
|
|
2
3
|
import { findDOM } from '../../utils/index.js';
|
|
3
4
|
import { CanvasContext } from '../canvas/CanvasContext.js';
|
|
@@ -186,13 +187,15 @@ class SelectorQuery {
|
|
|
186
187
|
return new NodesRef('.taro_page', this, true);
|
|
187
188
|
}
|
|
188
189
|
exec(cb) {
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
190
|
+
Taro.nextTick(() => {
|
|
191
|
+
queryBat(this._queue, res => {
|
|
192
|
+
const _queueCb = this._queueCb;
|
|
193
|
+
res.forEach((item, index) => {
|
|
194
|
+
const cb = _queueCb[index];
|
|
195
|
+
isFunction(cb) && cb.call(this, item);
|
|
196
|
+
});
|
|
197
|
+
isFunction(cb) && cb.call(this, res);
|
|
194
198
|
});
|
|
195
|
-
isFunction(cb) && cb.call(this, res);
|
|
196
199
|
});
|
|
197
200
|
return this;
|
|
198
201
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectorQuery.js","sources":["../../../src/api/wxml/selectorQuery.ts"],"sourcesContent":["import Taro from '@tarojs/api'\nimport { isFunction } from '@tarojs/shared'\n\nimport { findDOM } from '../../utils'\nimport { CanvasContext } from '../canvas/CanvasContext'\nimport { NodesRef } from './nodesRef'\n\ntype TElement = Document | HTMLElement | Element\n\ninterface ISelectorQueryQueue {\n component: TaroGeneral.IAnyObject\n selector: string\n single: boolean\n fields\n}\n\ntype TSelectorQueryQueueCallback = (res: ISelectorQueryQueue) => void\n\nfunction filter (fields, dom?: HTMLElement, selector?: string) {\n if (!dom) return null\n\n const isViewport = selector === '.taro_page'\n const { id, dataset, rect, size, scrollOffset, properties = [], computedStyle = [], nodeCanvasType, node, context } = fields\n const res: any = {}\n\n if (nodeCanvasType && node) {\n const tagName = dom.tagName\n res.node = {\n id: dom.id,\n $taroElement: dom\n }\n if (/^taro-canvas-core/i.test(tagName)) {\n const type = (dom as any).type! || ''\n res.nodeCanvasType = type\n const canvas = dom.getElementsByTagName('canvas')[0]\n if (/^(2d|webgl)/i.test(type) && canvas) {\n res.node = canvas\n } else {\n res.node = null\n }\n } else if (/^taro-scroll-view-core/i.test(tagName)) {\n // Note https://developers.weixin.qq.com/miniprogram/dev/api/ui/scroll/ScrollViewContext.html\n res.nodeCanvasType = ''\n res.node = dom\n dom.scrollTo = (dom as any).mpScrollToMethod\n dom.scrollIntoView = (dom as any).mpScrollIntoViewMethod\n } else {\n res.nodeCanvasType = ''\n res.node = dom\n }\n return res\n }\n if (context) {\n const tagName = dom.tagName\n if (/^taro-video-core/i.test(tagName)) {\n // TODO HTMLVideoElement to VideoContext\n return { context: dom as unknown as Taro.VideoContext }\n } else if (/^taro-canvas-core/i.test(tagName)) {\n const type = (dom as any).type! || '2d'\n const canvas = dom?.querySelector('canvas') as HTMLCanvasElement\n const ctx = canvas?.getContext(type) as CanvasRenderingContext2D\n return { context: new CanvasContext(canvas, ctx) }\n } else if (/^taro-live-player-core/i.test(tagName)) {\n console.error('暂时不支持通过 NodesRef.context 获取 LivePlayerContext')\n } else if (/^taro-editor-core/i.test(tagName)) {\n console.error('暂时不支持通过 NodesRef.context 获取 EditorContext')\n } else if (/^taro-map-core/i.test(tagName)) {\n console.error('暂时不支持通过 NodesRef.context 获取 MapContext')\n }\n return\n }\n if (id) res.id = dom.id\n if (dataset) res.dataset = Object.assign({}, dom.dataset)\n if (rect || size) {\n const { left, right, top, bottom, width, height } = dom.getBoundingClientRect()\n if (rect) {\n if (!isViewport) {\n res.left = left\n res.right = right\n res.top = top\n res.bottom = bottom\n } else {\n res.left = 0\n res.right = 0\n res.top = 0\n res.bottom = 0\n }\n }\n if (size) {\n if (!isViewport) {\n res.width = width\n res.height = height\n } else {\n res.width = dom.clientWidth\n res.height = dom.clientHeight\n }\n }\n }\n if (scrollOffset) {\n res.scrollLeft = dom.scrollLeft\n res.scrollTop = dom.scrollTop\n }\n if (properties.length) {\n properties.forEach(prop => {\n const attr = dom.getAttribute(prop)\n if (attr) res[prop] = attr\n })\n }\n if (computedStyle.length) {\n const styles = window.getComputedStyle(dom)\n computedStyle.forEach(key => {\n const value = styles.getPropertyValue(key) || styles[key]\n if (value) res[key] = value\n })\n }\n\n return res\n}\n\n/**\n * WXML节点信息API\n * @return {Object} SelectorQuery 对象实例\n */\nfunction queryBat (queue: ISelectorQueryQueue[], cb: (...args: any[]) => any): void {\n const result: any[] = []\n\n queue.forEach(item => {\n const { selector, single, fields, component } = item\n // selector 的容器节点\n /* eslint-disable */\n const container: TElement = (\n component !== null ?\n (findDOM(component) as HTMLElement || document) :\n document\n )\n /* eslint-enable */\n\n // 特殊处理 ---- 选自己\n let selectSelf = false\n if (container !== document) {\n const $nodeList = container.parentNode?.querySelectorAll(selector)\n if ($nodeList) {\n for (let i = 0, len = $nodeList.length; i < len; ++i) {\n if (container === $nodeList[i]) {\n selectSelf = true\n break\n }\n }\n }\n }\n\n if (single) {\n const el = selectSelf === true ? container : container.querySelector(selector)\n result.push(filter(fields, el as HTMLElement, selector))\n } else {\n const $children = container.querySelectorAll(selector)\n const children: TElement[] = []\n selectSelf === true && children.push(container)\n for (let i = 0, len = $children.length; i < len; ++i) {\n children.push($children[i])\n }\n result.push(children.map(dom => filter(fields, dom as HTMLElement)))\n }\n })\n cb(result)\n}\n\nexport class SelectorQuery implements Taro.SelectorQuery {\n _defaultWebviewId: string | null\n _webviewId: string | null\n _queue: ISelectorQueryQueue[]\n _queueCb: (TSelectorQueryQueueCallback | null)[]\n _component?: TaroGeneral.IAnyObject\n\n constructor () {\n this._defaultWebviewId = null\n this._webviewId = null\n this._queue = []\n this._queueCb = []\n this._component\n }\n\n in (component: TaroGeneral.IAnyObject) {\n this._component = component\n return this\n }\n\n select (selector: string) {\n // 小程序里跨自定义组件的后代选择器 '>>>' 在 h5 替换为普通后代选择器 '>'\n if (typeof selector === 'string') selector = selector.replace('>>>', '>')\n return new NodesRef(selector, this, true)\n }\n\n selectAll (selector: string) {\n // 小程序里跨自定义组件的后代选择器 '>>>' 在 h5 替换为普通后代选择器 '>'\n if (typeof selector === 'string') selector = selector.replace('>>>', '>')\n return new NodesRef(selector, this, false)\n }\n\n selectViewport () {\n return new NodesRef('.taro_page', this, true)\n }\n\n exec (cb) {\n queryBat(this._queue, res => {\n const _queueCb = this._queueCb\n res.forEach((item, index) => {\n const cb = _queueCb[index]\n isFunction(cb) && cb.call(this, item)\n })\n isFunction(cb) && cb.call(this, res)\n })\n return this as unknown as Taro.NodesRef\n }\n\n _push (selector: string, component, single, fields, callback: TSelectorQueryQueueCallback | null = null) {\n this._queue.push({\n component,\n selector,\n single,\n fields\n })\n this._queueCb.push(callback)\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"selectorQuery.js","sources":["../../../src/api/wxml/selectorQuery.ts"],"sourcesContent":["import Taro from '@tarojs/api'\nimport { isFunction } from '@tarojs/shared'\n\nimport { findDOM } from '../../utils'\nimport { CanvasContext } from '../canvas/CanvasContext'\nimport { NodesRef } from './nodesRef'\n\ntype TElement = Document | HTMLElement | Element\n\ninterface ISelectorQueryQueue {\n component: TaroGeneral.IAnyObject\n selector: string\n single: boolean\n fields\n}\n\ntype TSelectorQueryQueueCallback = (res: ISelectorQueryQueue) => void\n\nfunction filter (fields, dom?: HTMLElement, selector?: string) {\n if (!dom) return null\n\n const isViewport = selector === '.taro_page'\n const { id, dataset, rect, size, scrollOffset, properties = [], computedStyle = [], nodeCanvasType, node, context } = fields\n const res: any = {}\n\n if (nodeCanvasType && node) {\n const tagName = dom.tagName\n res.node = {\n id: dom.id,\n $taroElement: dom\n }\n if (/^taro-canvas-core/i.test(tagName)) {\n const type = (dom as any).type! || ''\n res.nodeCanvasType = type\n const canvas = dom.getElementsByTagName('canvas')[0]\n if (/^(2d|webgl)/i.test(type) && canvas) {\n res.node = canvas\n } else {\n res.node = null\n }\n } else if (/^taro-scroll-view-core/i.test(tagName)) {\n // Note https://developers.weixin.qq.com/miniprogram/dev/api/ui/scroll/ScrollViewContext.html\n res.nodeCanvasType = ''\n res.node = dom\n dom.scrollTo = (dom as any).mpScrollToMethod\n dom.scrollIntoView = (dom as any).mpScrollIntoViewMethod\n } else {\n res.nodeCanvasType = ''\n res.node = dom\n }\n return res\n }\n if (context) {\n const tagName = dom.tagName\n if (/^taro-video-core/i.test(tagName)) {\n // TODO HTMLVideoElement to VideoContext\n return { context: dom as unknown as Taro.VideoContext }\n } else if (/^taro-canvas-core/i.test(tagName)) {\n const type = (dom as any).type! || '2d'\n const canvas = dom?.querySelector('canvas') as HTMLCanvasElement\n const ctx = canvas?.getContext(type) as CanvasRenderingContext2D\n return { context: new CanvasContext(canvas, ctx) }\n } else if (/^taro-live-player-core/i.test(tagName)) {\n console.error('暂时不支持通过 NodesRef.context 获取 LivePlayerContext')\n } else if (/^taro-editor-core/i.test(tagName)) {\n console.error('暂时不支持通过 NodesRef.context 获取 EditorContext')\n } else if (/^taro-map-core/i.test(tagName)) {\n console.error('暂时不支持通过 NodesRef.context 获取 MapContext')\n }\n return\n }\n if (id) res.id = dom.id\n if (dataset) res.dataset = Object.assign({}, dom.dataset)\n if (rect || size) {\n const { left, right, top, bottom, width, height } = dom.getBoundingClientRect()\n if (rect) {\n if (!isViewport) {\n res.left = left\n res.right = right\n res.top = top\n res.bottom = bottom\n } else {\n res.left = 0\n res.right = 0\n res.top = 0\n res.bottom = 0\n }\n }\n if (size) {\n if (!isViewport) {\n res.width = width\n res.height = height\n } else {\n res.width = dom.clientWidth\n res.height = dom.clientHeight\n }\n }\n }\n if (scrollOffset) {\n res.scrollLeft = dom.scrollLeft\n res.scrollTop = dom.scrollTop\n }\n if (properties.length) {\n properties.forEach(prop => {\n const attr = dom.getAttribute(prop)\n if (attr) res[prop] = attr\n })\n }\n if (computedStyle.length) {\n const styles = window.getComputedStyle(dom)\n computedStyle.forEach(key => {\n const value = styles.getPropertyValue(key) || styles[key]\n if (value) res[key] = value\n })\n }\n\n return res\n}\n\n/**\n * WXML节点信息API\n * @return {Object} SelectorQuery 对象实例\n */\nfunction queryBat (queue: ISelectorQueryQueue[], cb: (...args: any[]) => any): void {\n const result: any[] = []\n\n queue.forEach(item => {\n const { selector, single, fields, component } = item\n // selector 的容器节点\n /* eslint-disable */\n const container: TElement = (\n component !== null ?\n (findDOM(component) as HTMLElement || document) :\n document\n )\n /* eslint-enable */\n\n // 特殊处理 ---- 选自己\n let selectSelf = false\n if (container !== document) {\n const $nodeList = container.parentNode?.querySelectorAll(selector)\n if ($nodeList) {\n for (let i = 0, len = $nodeList.length; i < len; ++i) {\n if (container === $nodeList[i]) {\n selectSelf = true\n break\n }\n }\n }\n }\n\n if (single) {\n const el = selectSelf === true ? container : container.querySelector(selector)\n result.push(filter(fields, el as HTMLElement, selector))\n } else {\n const $children = container.querySelectorAll(selector)\n const children: TElement[] = []\n selectSelf === true && children.push(container)\n for (let i = 0, len = $children.length; i < len; ++i) {\n children.push($children[i])\n }\n result.push(children.map(dom => filter(fields, dom as HTMLElement)))\n }\n })\n cb(result)\n}\n\nexport class SelectorQuery implements Taro.SelectorQuery {\n _defaultWebviewId: string | null\n _webviewId: string | null\n _queue: ISelectorQueryQueue[]\n _queueCb: (TSelectorQueryQueueCallback | null)[]\n _component?: TaroGeneral.IAnyObject\n\n constructor () {\n this._defaultWebviewId = null\n this._webviewId = null\n this._queue = []\n this._queueCb = []\n this._component\n }\n\n in (component: TaroGeneral.IAnyObject) {\n this._component = component\n return this\n }\n\n select (selector: string) {\n // 小程序里跨自定义组件的后代选择器 '>>>' 在 h5 替换为普通后代选择器 '>'\n if (typeof selector === 'string') selector = selector.replace('>>>', '>')\n return new NodesRef(selector, this, true)\n }\n\n selectAll (selector: string) {\n // 小程序里跨自定义组件的后代选择器 '>>>' 在 h5 替换为普通后代选择器 '>'\n if (typeof selector === 'string') selector = selector.replace('>>>', '>')\n return new NodesRef(selector, this, false)\n }\n\n selectViewport () {\n return new NodesRef('.taro_page', this, true)\n }\n\n exec (cb) {\n Taro.nextTick(() => {\n queryBat(this._queue, res => {\n const _queueCb = this._queueCb\n res.forEach((item, index) => {\n const cb = _queueCb[index]\n isFunction(cb) && cb.call(this, item)\n })\n isFunction(cb) && cb.call(this, res)\n })\n })\n return this as unknown as Taro.NodesRef\n }\n\n _push (selector: string, component, single, fields, callback: TSelectorQueryQueueCallback | null = null) {\n this._queue.push({\n component,\n selector,\n single,\n fields\n })\n this._queueCb.push(callback)\n }\n}\n"],"names":[],"mappings":"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"}
|
package/dist/index.cjs.js
CHANGED
|
@@ -5633,11 +5633,13 @@ class TaroH5IntersectionObserver {
|
|
|
5633
5633
|
const nodeList = this._options.observeAll
|
|
5634
5634
|
? this.container.querySelectorAll(targetSelector)
|
|
5635
5635
|
: [this.container.querySelector(targetSelector)];
|
|
5636
|
-
|
|
5637
|
-
|
|
5638
|
-
|
|
5639
|
-
|
|
5640
|
-
|
|
5636
|
+
Taro.nextTick(() => {
|
|
5637
|
+
nodeList.forEach(element => {
|
|
5638
|
+
if (!element)
|
|
5639
|
+
return;
|
|
5640
|
+
this._observerInst.observe(element);
|
|
5641
|
+
this._listeners.push({ element, callback });
|
|
5642
|
+
});
|
|
5641
5643
|
});
|
|
5642
5644
|
}
|
|
5643
5645
|
relativeTo(selector, margins) {
|
|
@@ -5939,13 +5941,15 @@ class SelectorQuery {
|
|
|
5939
5941
|
return new NodesRef('.taro_page', this, true);
|
|
5940
5942
|
}
|
|
5941
5943
|
exec(cb) {
|
|
5942
|
-
|
|
5943
|
-
|
|
5944
|
-
|
|
5945
|
-
|
|
5946
|
-
|
|
5944
|
+
Taro.nextTick(() => {
|
|
5945
|
+
queryBat(this._queue, res => {
|
|
5946
|
+
const _queueCb = this._queueCb;
|
|
5947
|
+
res.forEach((item, index) => {
|
|
5948
|
+
const cb = _queueCb[index];
|
|
5949
|
+
shared.isFunction(cb) && cb.call(this, item);
|
|
5950
|
+
});
|
|
5951
|
+
shared.isFunction(cb) && cb.call(this, res);
|
|
5947
5952
|
});
|
|
5948
|
-
shared.isFunction(cb) && cb.call(this, res);
|
|
5949
5953
|
});
|
|
5950
5954
|
return this;
|
|
5951
5955
|
}
|