等待异步 JavaScript 函数返回

2024-03-14

我正在使用第三方库提供的函数。该函数接受一个回调函数作为参数,但我想等待该回调被调用后再继续。有没有标准/可接受的方法来做到这一点?


我不确定这是否适合您,但您可以通过将代码分成 2 个函数来实现所需的结果。 假设这是您打算做的:

基本上这是你原来的功能:

function origFunc() {

    codeBeforeThirdPartyFunc();
    ThirdPartyFunc(oldCallBackFunc);
    Wait();
    codeAfterCallBackFunc();
}

您可以使用以下内容修改代码流程:

function newFunc() {
    codeBeforeThirdPartyFunc();
    ThirdPartyFunc(newCallBackFunc);
}
function newCallBackFunc() {
  oldCallBackFunc();
  codeAfterCallBackFunc();
}

这将消除等待循环。据我所知,忙等待在 IE 中不起作用(因为?只有上帝知道)..

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

等待异步 JavaScript 函数返回 的相关文章

  • 使用 Jquery 附加链接

    我正在尝试根据您所在的页面添加指向我的页面的链接 我使用 Squarespace 来构建这个网站 因此对我来说最简单的方法是使用 Javascript 或 Jquery 我认为我缺少的这个语法有问题 我已经尝试用 来打破引号 但这不起作用
  • 将事件添加到 Google Maps API InfoWindow 内的元素

    我想在 Google Maps API v3 InfoWindow 内放置一个带有输入字段和提交按钮的表单 提交后 我想调用一个函数 该函数使用输入字段中输入的地址启动方向服务 这是我的代码 我目前只测试方向事件是否被触发 我已经编写了完整
  • jQuery 选择器定位具有 id AND class 的元素不起作用

    我有以下事件处理函数 jQuery document on click button submitb function e alert jQuery 包含在 html 文档中 但是 如果我点击 div class submitb Go di
  • Chrome JavaScript 日期构造函数获取 1884 年之前的日期似乎是错误的

    如果我将 1 1 1753 午夜 的 unix 毫秒时间戳值 6847786800000 传递给 Chrome 中的 JavaScript Date 构造函数 则 Chrome 给出的日期看起来非常奇怪 当我使用带有七个参数的 Date 构
  • Next.js:如何将 source-map-explorer 与 Next.js 一起使用

    我想分析我的 Next js 构建源地图浏览器 https www npmjs com package source map explorer 有人可以帮我编写脚本吗 对于 React CRA 我使用以下脚本 build analyze n
  • 创建 html 结构,每个 li 中仅允许 3 个 div 元素。在 React + underscore.js 中

    这是以下内容的位副本如何创建每个 li 中仅允许 3 个 div 元素的 html 结构 在 React underscore js 中 https stackoverflow com questions 38008023 how to c
  • 动态更改 vuejs 2 中的选择输入选项

    如何动态更改选择下拉 v model 中的选项 我有 2 个选择输入 其中一个应该根据其他输入进行更改 例如 如果我选择 水果 则选择显示水果 如果我选择 蔬菜 则选择显示蔬菜 我不使用Vuejs 但查看文档后 var TypesArr F
  • 如何使用javascript从word文档页面中删除表格设计? Word js 插件

    我正在从表格 html 的 word 文档最后一页插入表格设计 我怎样才能删除它 这是我的代码 async function NewMap try await Word run async context gt html to word h
  • Angularjs - 将 True/False 显示为 Yes/No

    有没有一种简单的方法可以将真 假值显示为是 否 我正在从数据库检索包含以下内容的 JSON 对象 对象 WithCertification true 这是 HTML 有认证 elem WithCertification 正在显示这个 认证真
  • Async.StartChild是否存在内存泄漏?

    当我运行以下测试 使用 F 2 0 构建 时 我得到 OutOfMemoryException 在我的系统上大约需要 5 分钟才能达到异常 如果它作为 x86 进程运行 则为 i7 920 6gb ram 但无论如何我们都可以在任务管理器中
  • 在移动网站中处理 iPhone 事件(如向左滑动)

    iPhone 浏览器是否有可以使用 Javascript 挂钩的特殊事件 例如 如果用户向左滑动 我想执行某个操作 如果有类似的活动 很高兴看到所有这些活动的参考 理想情况下 有一天所有触摸屏移动浏览器都会有一个标准 您可以访问多点触控事件
  • 可选回调的 JavaScript 样式

    我有一些函数偶尔 并非总是 会收到回调并运行它 检查回调是否已定义 函数是一种好的风格还是有更好的方法 Example function save callback do stuff if typeof callback undefined
  • 如何更改元素的 CSS 类并在单击时删除所有其他类

    我如何处理 AngularJS 2 中的一种情况 即单击一个元素需要更改其自己的样式 并且如果其他元素具有该样式 则需要将其删除 最好在一个函数中 如同Angular js 如何在单击时更改元素 css 类并删除所有其他元素 https s
  • JavaScript 中的最短路径

    几周来我一直在寻找一种在 JavaScript 中计算最短路径的方法 我一直在玩书数据结构和算法作者 格罗纳 Groner 名字恰如其分 https github com loiane javascript datastructs algo
  • 适用于多应用项目的 Grunt 和 requirejs 优化器

    我在让 Grunt 对具有以下结构的项目执行 requirejs 优化时遇到问题 static js apps app js dash js news js many more app files build collections lib
  • YouTube iFrame Player API 无法在 DOMWindow 上执行 postMessage

    我正在尝试使用以下命令将 youtube 加载到我的网页中YouTube iFrame Player API 并在加载时出现以下错误 Failed to execute postMessage on DOMWindow The target
  • 如何调试 Node.js 应用程序?

    如何调试 Node js 服务器应用程序 现在我主要使用警报调试打印语句如下 sys puts sys inspect someVariable 一定有更好的调试方法 我知道谷歌浏览器 http en wikipedia org wiki
  • 错误:模块“html”不提供视图引擎(Express)

    我正在尝试设置一个简单的路由应用程序 但在渲染页面时不断遇到错误 Error Module html does not provide a view engine 奇怪的是我已经在 app js 文件中指定了视图引擎 但仍然收到错误 app
  • Javascript/jQuery 外部高度()

    Does idOfLememt outerHeight 对所有浏览器产生相同的结果 IE7 有什么不同吗 只要去http api jquery com outerHeight http api jquery com outerHeight
  • JavaScript 中“键”的类型是什么?

    当我失去焦点并开始思考一个愚蠢的问题时 我遇到了这样的时刻 var a b value b 的类型是什么 我的意思不是 值 的类型 而是标记为 b 的实际键 背景 当我必须创建一个字符串键时 我开始想知道这一点 var a b value

随机推荐

  • ACCESS/SQL:如何同时插入/更新?

    这是我的情况 首先 我不是在关系数据库上工作 我只是使用访问作为操作数据的简单方法 目前 我有很多桌子 一个主表 我们称之为 MAIN 还有大约 10 个其他表 我们可以称之为 X1 X2 X3 等 X1 表包含具有 X1 属性的项目 X2
  • 在.NET v4.0中解析MP3文件

    如何解析 MP3 文件以获取其所有属性 另外如何编辑MP3文件的属性 NET v4 0 中有可用的类吗 这些属性称为 ID3 标签 我认为 NET 框架不负责提供对它们的阅读 这是来自 SourceForge 的一些代码 http sour
  • 在 MacOS X 上的 GHCi 中工作的 Haskell 图形库

    是否存在满足以下要求的 Haskell 图形库或绑定到外部库 可以使用从ghci 即我不必链接并重新启动程序 适用于 MacOS X 与 1 结合使用很棘手 可以制作简单的矢量图形 线条 多边形 简单的填充和描边 可以将位图图像放在屏幕上
  • 在lisp中,如何使用floor函数返回的第二个值?

    当我这样做时 4楼3 我得到了 1 1 3 但我该如何使用这 1 3 呢 例如 您可以使用将其绑定到变量multiple value bind multiple value bind quot rem floor 4 3 format t
  • 移动 Safari 与主屏幕 Web 应用程序

    我正在为 iOS 开发一个 web 应用程序 我注意到在移动 safari 上运行和从主屏幕运行之间存在一些奇怪的事情 是否有任何资源可以提供在模式之间切换的通用接口 如果没有 是否有任何资源详细说明这两种模式之间的所有差异和陷阱 我遇到过
  • 将数据从节点传递到jade?

    问题是我渲染视图并发送一些数据 console log products shows an array res render seller sell shop id req user shop id products products 我将
  • Spring Data Rest - 如何从页面中删除元素?

    我的项目中有以下 REST 控制器方法 RequestMapping method GET value applications produces MediaType APPLICATION JSON VALUE public Respon
  • GitHub Probot:错误 probot:签名与事件负载和秘密不匹配

    我正在尝试使用构建 GitHub 应用程序机器人框架 https probot github io 这是文件的内容index js module exports robot gt robot log Yay the app was load
  • docker-compose restart 连接池已满

    我和我的团队正在使用 docker compose 将我们的一些基础设施转换为 docker 一切似乎都工作得很好 我遇到的唯一问题是重新启动它给我一个连接池已满错误 我正在尝试找出造成这种情况的原因 如果我删除 2 个容器或 1 个完整设
  • 如何强制 Ruby 尊重 Net::HTTP 标头中的下划线

    我如何强制 Ruby 尊重 a 中的下划线Net HTTP header uri URI parse url headers api key my private key request Net HTTP Post new uri head
  • 删除node.js中的几个文件

    删除node js中的多个文件的最佳方法是什么 function deleteFiles files callback var files file1 js file2 jpg file3 css deleteFiles files cal
  • 如何在 M1 mac 上安装自制软件

    我刚买了一台新 Mac M1 Macbook pro 我正在尝试安装自制程序 但每次我完成安装时 它都会告诉我它没有写入路径 然后当我尝试建议的任何内容添加到路径 什么也没有发生 终端或其他任何东西根本无法识别该命令 就好像它没有安装一样
  • 在 VBE 中无法查看 Excel 工作表

    我正在使用其他人创建的 Excel 文件 一张包含宏的工作表似乎受密码保护 但我不明白的是我无法在工作表列表下的 VBE 中看到它 工作表选项卡在 Excel 中可见 但我看不到内容 有没有办法在VBE中取消隐藏它 一张包含宏的工作表 这是
  • Rails:Watir 中的代理身份验证(Chrome 驱动程序)

    我尝试添加代理身份验证chrome在 watir 上运行的 webdriver 如下所示 require watir proxies proxy server 185 264 167 184 63109 proxy auth usernam
  • 难以从 iPhone X 上的 2D 区域获取面部标志点的深度(SceneKit/ARKit 应用程序)

    我正在使用 iPhone X 上的前置摄像头运行面部标志检测 并且正在努力获取面部标志的 3D 点 VNFaceLandmarkRegion2D 仅提供图像坐标 X Y 我一直在尝试使用ARSCNView hitTest or ARFram
  • jQuery 如何返回一个数组并且仍然是一个 jQuery 对象?

    我试图重现 jQuery 1 7 1 的对象结构 以更好地理解它是如何工作的 我有以下代码 function window undefined var document window document navigator window na
  • PDF 到 Excel 转换将每个 pdf 页面放在不同的工作表中

    我正在尝试将 pdf 文件 有 16 页 转换为 Excel 文件 以便运行我在 Excel 中已有的程序 我已经有一个将 pdf 转换为 excel 的代码 但我希望宏将 pdf 文件的每个单独页面放入我的 excel 文件中的不同工作表
  • 伪造 WPF 操作事件

    我想使用鼠标 键盘伪造操纵 或触摸 事件 当我尝试使用以下方式引发事件时 RoutedEventArgs e new RoutedEventArgs ManipulationStartedEvent this RaiseEvent e 给我
  • CodeLearn Twitter 教程 TweetAdapter.java 上出现空指针错误

    我目前正在学习 Codelearn Twitter 教程 但我在下面的代码中收到一个空指针 有人可以帮助我吗 public class TweetAdapter extends ArrayAdapter
  • 等待异步 JavaScript 函数返回

    我正在使用第三方库提供的函数 该函数接受一个回调函数作为参数 但我想等待该回调被调用后再继续 有没有标准 可接受的方法来做到这一点 我不确定这是否适合您 但您可以通过将代码分成 2 个函数来实现所需的结果 假设这是您打算做的 基本上这是你原