以下是我的使用流程:
第一步:
npm i lodash
第二步:
import _ from 'lodash'
第三步:(想用防抖方法)
_.debounce(async ()=>{
console.log('ss')
let searchListData = await request('/search/suggest', {
keywords: this.data.searchContent,
limit: 10
})
this.setData({
searchList: searchListData.result.songs
})
}, 2000)
然后发现报错:Cannot read property 'prototype' of undefined
于是百度解决方案:
项目下新建lib/lodash-fix.js
文件内容如下:
// 修复 微信小程序中lodash的运行环境
global.Object = Object;
global.Array = Array;
// global.Buffer = Buffer
global.DataView = DataView;
global.Date = Date;
global.Error = Error;
global.Float32Array = Float32Array;
global.Float64Array = Float64Array;
global.Function = Function;
global.Int8Array = Int8Array;
global.Int16Array = Int16Array;
global.Int32Array = Int32Array;
global.Map = Map;
global.Math = Math;
global.Promise = Promise;
global.RegExp = RegExp;
global.Set = Set;
global.String = String;
global.Symbol = Symbol;
global.TypeError = TypeError;
global.Uint8Array = Uint8Array;
global.Uint8ClampedArray = Uint8ClampedArray;
global.Uint16Array = Uint16Array;
global.Uint32Array = Uint32Array;
global.WeakMap = WeakMap;
global.clearTimeout = clearTimeout;
global.isFinite = isFinite;
global.parseInt = parseInt;
global.setTimeout = setTimeout;
再到对应文件夹引入:
import '../../lib/lodash-fix'
欸嘿报错没有了。
但是debounce里面的回调还是不执行的。
我试了lodash的数组去重方法都能用,这个防抖为啥不行嘞。