异步 JavaScript 函数可以强制同步执行吗?
Dec 03, 2024 am 03:24 AM异步 Javascript 函数可以同步调用吗?
虽然异步编程在 Javascript 中很常见,但特定场景可能需要对现有同步函数进行同步调用代码库。尽管承认这种方法的次优性质,但由于时间限制,可能有必要将异步调用改造为更大的同步代码库。
阻塞回调函数
挑战在于阻塞调用函数的执行,直到收到异步函数的回调。关键考虑因素包括:
- 不可能阻止 UI:阻止 Javascript 运行时将不可避免地冻结 UI 体验。
- 轮询全局变量: 另一种方法涉及轮询由调用函数内的回调设置的全局变量。这可以使用间隔计时器来实现,重复检查直到填充全局变量。
示例实现:
function doSomething() { var data; function callBack(d) { window.data = d; } myAsynchronousCall(param1, callBack); // Start polling var intvl = setInterval(function() { if (window.data) { clearInterval(intvl); console.log(data); } }, 100); }
登录后复制
重构异步合规性:
但是,值得注意的是,理想的方法剩下的就是修改调用函数并传递回调来处理异步操作。这可以在不牺牲同步代码库功能的情况下保持异步完整性。
function doSomething(func) { function callBack(d) { func(d); } myAsynchronousCall(param1, callBack); } doSomething(function(data) { console.log(data); });
登录后复制
以上是异步 JavaScript 函数可以强制同步执行吗?的详细内容。更多信息请关注PHP中文网其他相关文章!
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章
击败分裂小说需要多长时间?
3 周前
By DDD
仓库:如何复兴队友
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
公众号网页更新缓存难题:如何避免版本更新后旧缓存影响用户体验?
3 周前
By 王林
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前
By 尊渡假赌尊渡假赌尊渡假赌

热门文章
击败分裂小说需要多长时间?
3 周前
By DDD
仓库:如何复兴队友
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
公众号网页更新缓存难题:如何避免版本更新后旧缓存影响用户体验?
3 周前
By 王林
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前
By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)