遇到一个小问题
export function test001(value, callback) {setTimeout(() => {if (value == undefined) {test001(value, callback)} else {callback()}}, 100)
}// 调用处
// 要测试的变量
param01
test001(param01, () => {console.log('值不为空啦')
})
这个变量param01,本来会在一会就有值的,但是这个 test001一直不返回,经查后发现:
当param01传入test001方法后,在方法内部就固定了,可以理解为在内存中开辟了另一块,将值存在里面,所以并不会一直更新。
改为如下即可(即值使用一个方法返回值即可)
export function test001(execFunc, callback) {setTimeout(() => {if (execFunc() == undefined) {test001(execFunc, callback)} else {callback()}}, 100)
}// 调用处
test001(() => {return param01; // param01是一个变量
}, () => {console.log('有值啦')
})