实习生遇到个问题,有没有大佬解答,感激不尽。
javascript吧
全部回复
仅看楼主
level 6
实习生遇到个问题,有没有大佬解答,感激不尽。
2020年05月29日 00点05分 1
level 6
我现在是这么处理的,将公司的方法setouttime(fn(),3000),延迟3秒,在我本地勉强实现想要的效果,因为偶尔还是会先执行fn()
2020年05月29日 00点05分 2
level 6
但是在同事的服务器上,始终是先执行setouttime里的,我都无语了,两天没睡好了
2020年05月29日 00点05分 3
level 13
你这语法看得我一愣,fn(),不是会直接执行函数吗。
回归正题,你可以考虑把两个函数一起放到 setInterval 里:
setInterval(function(){
getKey();
fn();
},50)
异步执行的方法有那么多,自己研究一下没那么难吧。
2020年05月31日 06点05分 4
是这样的,getKey()里就使用了setinterval()。getKey()是厂家给我的方法,我原本是想先通过getKey()获取key再将key传递给fn()作为参数,但会发生先执行fn()再获取key的情况。
2020年06月01日 00点06分
@迪迦丶恰! 第一,我不知道你的getKey长啥样,但是有多种异步写法可以保证先执行getKey再执行fn,其次如果你贴出来的代码是原封不动的话,你很有可能犯了语法混淆。
2020年06月01日 01点06分
@BSPR0002 嗯嗯,因为我是搞后端的,这种异步的问题只有请教你们了
2020年06月01日 01点06分
@迪迦丶恰! 所以我的意思就是,你不把你的getKey和fn还有你的代码请出来具体看看,我们也没办法下药啊
2020年06月01日 01点06分
level 7
setTimeout加一句判定key是不是undefined,是的话就跳出,
2020年05月31日 19点05分 5
key肯定会获取的,只是先后问题,我需要把获取的key传递给fn()作为参数,如果为空就跳出的话,这个功能就没意义了。
2020年06月01日 00点06分
level 1
试一下能不能先在前面用async处理异步函数变为同步再settime out
2020年05月31日 22点05分 6
好的,我试试大佬的建议
2020年06月01日 00点06分
level 1
面试的时候遇到过类似这样的问题,好像可以用回调
2020年05月31日 23点05分 7
对于我一个干后端的,这简直就是为难我[笑尿]
2020年06月01日 00点06分
level 1
6楼
2020年06月01日 00点06分 8
收到
2020年06月01日 00点06分
level 2
写个函数放setinterval里,隔100毫秒检查一次getkey是否执行完,执行完了再调fn
2020年06月01日 01点06分 9
这个感觉可以
2020年06月01日 01点06分
level 1
可以promise吧,先执行
2020年06月01日 01点06分 10
level 6
大概意思就是这样
2020年06月01日 01点06分 11
level 6
大点
2020年06月01日 01点06分 12
你这……根本没办法通过getKey拿到key,写法有问题,如果你的getKey不能改的话,那这个问题就无解了,你的return值到不了key的手里。
2020年06月01日 02点06分
@BSPR0002 。。可能是我简洁代码省太多了,稍等
2020年06月01日 02点06分
你这个c1在调用的时候,根本没有在等getKey,而且getKey返回的是undefined,setInterval还要在50毫秒后才会执行,然后就直接执行了 fun,fun的setTimeout在0毫秒后执行等待时间比setInterval短,看起来就是先执行setTimeou
2020年06月01日 02点06分
@BSPR0002 大佬再看
2020年06月01日 02点06分
level 6
完整一点
2020年06月01日 02点06分 13
level 1
我的想法,你可以先把值绑定一个元素,然后监听这个元素回调你的函数[滑稽]
2020年06月01日 02点06分 14
level 13
你需要把你的 c1 跟 fun 两个函数重构。
而且你最后一张图的 getKey 是有语法错误的,会直接报错。
你可以把 c1 写成异步函数(async function),因为你的 getKey 是返回 Promise 对象的,用异步函数可以让逻辑更加清晰。
呃啊。真的想收费了。
2020年06月01日 03点06分 17
😂好的,我交学费
2020年06月01日 06点06分
大佬,我美团给你买杯奶茶吧,给我发个地址和电话,
2020年06月01日 06点06分
1 2 尾页