问题标签 [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 投票
2 回答
11966 浏览

javascript - 为什么使用 `URL.createObjectURL(blob)` 而不是 `image.src`?

Q1。在异步 JavaScript 和需要从客户端“获取”数据的情况下,为什么我们不能通过其属性来编辑我们的图像元素src

Q2。为什么必须经过 Blob 转换过程?

Q3。什么是 blob 角色?

例如,从 JSON 中检索图像文件。(顺便说一句,我是从 MDN 网页中提取的,请注意评论)

0 投票
1 回答
462 浏览

javascript - 递归函数JS中级联的多个异步调用

我已经知道这个问题已经被问过很多次了,但我不知道如何组织我的代码。我来自 C/C++ 语言并且仍然有思维方式,而我在 JS 中编写的内容看起来“毫无意义”。

我正在使用递归函数来生成地图上的旅行。问题是我需要对 2 个不同的 API 进行 2 次异步调用,第二个取决于第一个的结果。

实际上,我一直在使用回调函数,如下所示:

它工作得很好,但有很多重叠,我不知道这个函数是否出错(例如,对 API 的调用失败等)。

问题是如何在这种情况下引入 Promises 或在 JS 中引入 async/await 术语?我怎样才能把这段代码变成更容易理解的方式?

谢谢。

0 投票
1 回答
21 浏览

javascript - JS Promises:为什么setTimeout回调后不能设置代码执行?

我正在阅读这篇关于 Javascript 中的承诺链的文章,并且对它所说的部分感到困惑how can we do something after the avatar has finished showing and gets removed? For instance, we’d like to show a form for editing that user or something else. As of now, there’s no way.

图像被删除后我们不能做某事的原因是img.remove()不是没有返回承诺?还是setTimeout在回调完成后不返回任何内容?

0 投票
1 回答
34 浏览

javascript - 如果在 Promise 链中的某个点抛出错误,它是否会自动沿链向下传播?

假设你有一个这样的承诺链:

如果在其中一个函数调用期间抛出错误,该错误是否会自动传播到catch链的末端?假设错误是在开始时抛出的,在 期间asyncFunction(),它如何传播的确切机制是什么?错误是否传递给每个处理程序then?还是每个人都寻找第二个处理程序,没有看到一个,然后将错误传递给下一个then

0 投票
1 回答
55 浏览

javascript - 如何在AngularJS的for循环中在另一个HTTP调用中调用一个HTTP调用?

我正在开发一个 AngularJS 应用程序。我有以下数组:

现在,我正在调用这样的 HTTP GET 请求:

现在,由于所有这些调用都是异步的,我希望 NETWORK 选项卡中的这些调用像这样(由于异步性质,这些调用的顺序可能不同):

getFruitColor('appleColor')

getFruitColor('橙色颜色')

getFruitColor('葡萄颜色')

getFruitDetail('appleDetail')

getFruitDetail('orangeDetail')

getFruitDetail('grapesDetail')

但我在 NETWORK 选项卡中实际看到的是:

getFruitColor('appleColor')

getFruitColor('橙色颜色')

getFruitColor('葡萄颜色')

getFruitDetail('grapesDetail')

getFruitDetail('grapesDetail')

getFruitDetail('grapesDetail')

我是 AngularJS 和 Javascript 的初学者,我不明白这里的问题是什么以及为什么在内部 HTTP 调用中,水果数组的最后一个元素的 url2 对循环中的每个元素都进行。谁能解释为什么这里会发生这种行为?我应该怎么做才能达到预期的效果?

0 投票
0 回答
401 浏览

react-native - Redux 传奇:如何将 `yield put()` 放入事件监听器中?

我正在使用Redux sagaandOneSignal在我的 React Native 应用程序中。在我的传奇中,我有以下生成器函数:

这段代码的问题是它yield put必须在生成器函数中,但我的事件侦听器不是生成器。

有谁知道我该如何解决这个问题?

0 投票
1 回答
28 浏览

javascript - 如何使用我的网页异步调用的java脚本库的功能?

1.我本地的js文件sdk.js是

2.被异步调用的远程js是ub-sdk.js

  1. index.html 就像

我无法访问 us-sdk.js 中定义的函数和对象。我正在使用在 Apache 服务器下运行的本机 java 脚本代码。让我知道我做错了什么?

0 投票
1 回答
19 浏览

jquery - 如何使功能接连工作(包含ajax请求)

我有 2 个功能:首先在页面上加载 svg,然后<path>在某些 svg 中更改某些颜色。

这个函数看起来像:

get_svg_part(category,position,part_name);-- 包含ajax

svg_part_color(category,position,color,parameter);-- 需要在 get_svg_part() 之后执行

我有一些情况,我只是加载 svg 而不改变颜色,在另一种情况下,我需要加载 svg 并改变其中的情侣颜色。这就是为什么我没有使用successcomplite在 ajax 中。我还需要在页面加载时执行此操作,因此我将所有(2 个函数和调用)放在之前jQuery(document).ready()(如果需要此信息)。

我试图做到这一点$.when.then但这没有效果:

也许我也需要svg_part_color();在某种意义上异步?如果是这样,那怎么办?

问题:如何使函数一个接一个地工作(包含ajax请求)?

如果这会像这样工作,那就太酷了:


更新: get_svg_part 代码:

0 投票
0 回答
11 浏览

asynchronous - 在这种情况下回调不起作用还是应该使用异步/等待?还是我无法返回缓冲区?

上周我问了一个与此类似的问题,当我提到一个关于异步 JavaScript 的问题时,它立即被关闭了。我试图遵循使用异步回调函数的似乎有利的意见,尤其是在使用 fs 模块之类的东西时。但是此代码仍然无法继续工作。回调和其他异步(如异步函数/等待)本质上是否不同,它们是否更适合这个问题?

我正在尝试返回一个缓冲区,它是我创建的附加 fs 从头、主(routeString 变量)和尾 html 文件读取的 html。

我不明白为什么我可以 console.log 在 renderPage 函数中的 html 缓冲区,但它不会返回相同的缓冲区。我不能返回缓冲区吗?我真的很困惑,并且已经坚持了一段时间。

0 投票
1 回答
85 浏览

es6-promise - 实现一个承诺以返回两个承诺中较慢的一个

我是异步编程的新手,我只是熟悉用 Promise 代替回调的想法。我正在尝试实现一个函数(promise)来接受另外两个promise,并且只有在两个promise 都完成的情况下才会返回一个需要更长时间才能完成的promise 的值。所以基本上我的想法是使用 Date.now() 函数来计算执行一个承诺所需的时间,但是我很难把它写下来,特别是一个包含其他两个承诺的承诺(如果那是什可能),这是我的尝试:

这只是一个想法,promise p1, p2 应该作为 promise 'slower' 的参数给出,我对 Date.now() 所做的事情应该以某种方式围绕对这些 promise 的调用,然后我希望计算两个 Promise 的运行时间,然后返回较慢的 Promise 的值。关于如何实现这一点的任何想法?谢谢。