2 回答
TA贡献1850条经验 获得超11个赞
在setTimeout中你是拿不到返回值的,你可以用Promise来wrap一下。
function checkOver(item) {
let check = false;
let promise = new Promise(function(resolve, reject) {
setTimeout(() => {
check = $('#dept' + item.department_id)[0].offsetWidth < $('#dept' + item.department_id)[0].scrollWidth;
resolve(check);
}, 1);
});
return promise;
}
checkOver(item).then((check) => {
console.log(check); // --> true/false
});
TA贡献1887条经验 获得超5个赞
异步返回不出去的
关于异步常用两种方式 callback和promise
callback回调:
checkOver(item,callback){
let check = false;
setTimeout(() => {
check = $('#dept' + item.department_id)[0].offsetWidth < $('#dept' + item.department_id)[0].scrollWidth;
callback&&callback(check)
}, 1)
}
//调用
checkOver(item,function(check){
console.log(check)
})
添加回答
举报