问题标签 [asynchronous-javascript]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
334 浏览

javascript - Javascript 事件循环并行

我正在阅读一本关于 Javascript 异步编程的书。所以异步是串行实现的,但我在这本书中读到,可以通过在单独的线程中使用协作事件循环来实现并行性。我只是好奇如何以及为什么在实践中这样做。

0 投票
1 回答
55 浏览

angular - Angular2- 异步嵌套 API 调用

在这里,我从每个 vhost 获取数据并将它们连接到一个名为 jsonData 的整个数组,该数组将包含每个 vhost 的所有位置。在 Location 中有一个名为 IP 的变量,其中一些是未定义的。这就是为什么我有 if 语句来检查它们是否未定义的原因。如果它们确实未定义,我会在每个位置内进行更彻底的搜索并获取适当的 IP 名称。然后我将 loc.ip 设置为适当的 this.data.IP 名称。但是,jsonData 数组连接数据而无需等待我设置未定义的 ip 名称,因为它们是异步的。如何让 jsonData 等待连接,直到所有位置 ip 都未定义?

0 投票
0 回答
37 浏览

javascript - 如何在 Chrome 启动时清除 chrome.storage

我正在开发一个使用事件页面的 chrome 扩展程序,并且每次 Chrome 启动时我都试图完全清除它的本地存储。

这就是我现在在eventPage.js中所拥有的:

这似乎不起作用。我了解这些函数的异步性质,所以请不要对我进行任何关于它们的冗长讲座。这并不是试图以某种方式使clear函数同步运行。我不只是不确定如何clear正确使用该功能,使其按预期工作。

我正在考虑将所有内容放在chrome.runtime.onStartup.addListener回调函数中的调用下方,clear以便仅在清除完成后才调用它,但这意味着基本上将整个程序放在 chrome 启动侦听器中,这似乎不是正确的方法. 我只是不确定我是否以正确的方式思考这个问题。

任何有关异步函数的帮助和智慧将不胜感激。请不要咆哮,我已经读了很多书了:)谢谢!

0 投票
2 回答
368 浏览

angularjs - 即使条件为假,循环内的服务调用也不会停止循环

我想停止对getModelDataifshouldPermit的重复调用true。但下面的代码总是在控制台中打印why I got printed forEach newlySelectedUsers每个newlySelectedUsers.

如何停止调用getModelData一次shouldPermit成为真的?

0 投票
1 回答
46 浏览

javascript - 使用 thunk:为什么我的代码没有按顺序打印?

我试图理解 thunks。我正在学习 Kyle Simpson 在 Lynda 上的 Rethinking Async JS 课程。

我有这个代码:

现在,当我执行以下操作时:

结果是 625 打印了两次。

但是,当我执行

结果是 25 执行了两次。

在第一种情况下,我的期望是先打印 625,然后再打印 25。在第二种情况下,先打印 25,然后再打印 625。

为什么我的期望不正确?

0 投票
1 回答
608 浏览

node.js - 如何使用 mocha chai 测试异步服务器代码?

在我的 mocha-test 套件中,我想测试一个在后台进行异步调用的功能。我怎样才能等到异步调用完成?

例如,我打了两个背靠背的邮政电话。第一个 post 调用也在内部进行异步调用,直到该异步操作完成,第二个 post 调用不会通过。

我需要以下任一:

1) 在两个 post 调用之间放置一个延迟,以确保第一个 post 中的异步部分是完整的。
2) 重复进行第二次 post call 直到它通过。
3) 或者如何通过 mocha-chai 测试异步调用?

下面是示例:

有没有办法处理这个?请帮忙。

谢谢。

0 投票
4 回答
46 浏览

javascript - 在此代码中定义回调的位置

这是使用护照js进行身份验证的代码片段,如下所示,

在上面的代码中,done 是在多个地方使用的回调函数,但是我想知道这个(done)回调函数在哪里定义,我看到的是它作为参数传递然后调用,所以我的基本问题我怎么知道这个回调会做什么或者它是在哪里定义的。它应该执行一些操作。那么它是在哪里定义的呢?

0 投票
1 回答
34 浏览

jquery - 在异步 javascript 调用中设置变量

我有一个x类对象C。该属性x.myval应通过调用来设置,而调用x.load()又应从异步 ajax 调用中获取其数据。

我得到一个错误this.myval is undefined,显然是因为this设置为thisjquery- $

我也试过:

但这特雷特例外jQuery.Deferred exception: assignment to undeclared variable...

0 投票
2 回答
1297 浏览

javascript - Rocket.Chat 集成中的 API 调用

我正在尝试进一步扩展 telegram-rocket.chat 桥,需要为此调用一些 api。为此,rocket.chat 公开了一个名为 HTTP 的 Meteor.js 包装器。

此代码片段是一个传出挂钩,它处理用户发送的消息,让我转换消息并传递更改后的文本。

prepare_outgoing_request({request}) 被 Rocket.chat 钩子调用,我想在其中调用一个 API,将表情符号代码解析为实际的表情符号字符:“:see_no_evil: to”

Meteor 文档指出:

我不确定如何在这里进行,因为我对异步编程还不完全满意。在结果实际可用之前,我将如何阻止,或者是否有另一种我完全想念的方法?

0 投票
0 回答
208 浏览

javascript - 在 Stache Can.js 中处理 NDJSON 流 Promise

我有这个流 API 端点:

https://step3-ndjson-stream-api-demo.glitch.me/

我尝试使用can.js NDJSON 流进行渲染,并按照示例得到了一些成功输出到 console.log 但只有第一个对象。

这是我的 app.js(截断):

这是我的 index.stache 的一个片段:

我的控制台开发者视图(注意第一次调用成功):

控制台视图

我想我必须处理 index.stache 中的 promise 对象,但不确定...谢谢您的关注。

更新

最后我能够得到流数据:

}

并修改我的 index.stache:

但我仍然收到错误/警告:

UnhandledPromiseRejectionWarning:错误 [ERR_HTTP_HEADERS_SENT]:在将标头发送到客户端后无法设置标头

[DEP0018] 弃用警告:不推荐使用未处理的承诺拒绝。将来,未处理的 Promise 拒绝将使用非零退出代码终止 Node.js 进程。

失败的承诺:TypeError:response.getReader 不是函数

有谁知道如何清除它们?