首页 > web前端 > js教程 > 如何使 JavaScript 中的异步函数同步运行?

如何使 JavaScript 中的异步函数同步运行?

Susan Sarandon
发布: 2024-11-18 03:31:02
原创
837 人浏览过

How Can I Make Asynchronous Functions Behave Synchronously in JavaScript?

异步函数的同步调用

在某些特定场景中,可能需要强制异步调用在同步代码库中同步运行。虽然它通常不被认为是最佳实践,但实现它的方法如下:

通过轮询进行阻塞

首先,需要注意的是,真正阻塞 JavaScript 执行线程而不需要冻结 UI 是不可行的。但是,可以通过定期检查异步操作的完成来模拟阻塞。

function doSomething() {
  var data;

  function callback(d) {
    data = d;
  }

  myAsynchronousCall(param1, callback);

  // Poll until the data is set by the callback
  while (!data) {
    // Sleep for a short duration to avoid excessive polling
  }

  return data;
}
登录后复制

这种方法有效地阻塞调用函数,直到调用回调为止。然而,它需要频繁的轮询,效率很低。

基于回调的方法

更干净、更高效的解决方案是向原始异步传递一个回调函数call.

function doSomething(callback) {
  myAsynchronousCall(param1, function(data) {
    callback(data);
  });
}
登录后复制

修改后的 doSomething() 函数现在将回调作为参数,将使用异步调用返回的数据。

doSomething(function(data) {
  console.log(data);
});
登录后复制

此方法允许在同步代码中无缝处理异步调用,而不会阻塞或过度轮询。

以上是如何使 JavaScript 中的异步函数同步运行?的详细内容。更多信息请关注PHP中文网其他相关文章!

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