首页 > web前端 > js教程 > 异步 JavaScript 函数可以强制同步执行吗?

异步 JavaScript 函数可以强制同步执行吗?

DDD
发布: 2024-12-03 03:24:10
原创
684 人浏览过

Can Asynchronous JavaScript Functions Be Forced to Execute Synchronously?

异步 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板