Questions tagged «asynchronous»

异步编程是一种用于延迟具有高延迟或低优先级的操作的策略,通常是为了提高软件的性能,响应能力和/或可组合性。通常使用事件驱动的编程和回调的某种组合来采用此类策略,并且可以选择通过协程和/或线程并发使用。

30
如何从异步调用返回响应?
Наэтотвопросестьответына 堆栈溢出нарусском:Каквернутьзначениеизсобытияилиизфункции обратноговызова ?Илихотябыдождатьсяихокончания 我有一个foo可以发出Ajax请求的函数。我如何从中返回响应foo? 我尝试从success回调中返回值,以及将响应分配给函数内部的局部变量并返回该局部变量,但这些方法均未真正返回响应。 function foo() { var result; $.ajax({ url: '...', success: function(response) { result = response; // return response; // <- I tried that one as well } }); return result; } var result = foo(); // It always ends up being `undefined`.

30
如何异步上传文件?
我想用jQuery异步上传文件。 $(document).ready(function () { $("#uploadbutton").click(function () { var filename = $("#file").val(); $.ajax({ type: "POST", url: "addFile.do", enctype: 'multipart/form-data', data: { file: filename }, success: function () { alert("Data Uploaded: "); } }); }); }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> <span>File</span> <input type="file" id="file" name="file" size="10"/> <input id="uploadbutton" type="button" value="Upload"/> 运行代码段隐藏结果展开摘要 我只获取文件名,而不是上传文件。我该怎么做才能解决此问题?

15
如何让jQuery执行同步而不是异步的Ajax请求?
我有一个提供标准扩展点的JavaScript小部件。功能之一就是beforecreate功能。它应返回false以防止创建项目。 我已经使用jQuery在此函数中添加了Ajax调用: beforecreate: function (node, targetNode, type, to) { jQuery.get('http://example.com/catalog/create/' + targetNode.id + '?name=' + encode(to.inp[0].value), function (result) { if (result.isOk == false) alert(result.message); }); } 但是我想防止我的小部件创建该项目,因此我应该false在母函数中返回,而不是在回调中返回。有没有一种方法可以使用jQuery或任何其他浏览器内API执行同步AJAX请求?


21
如何以及何时使用“异步”和“等待”
根据我的理解async,await要做的主要事情之一就是使代码易于编写和阅读-但是使用它们是否等同于产生后台线程来执行长时间逻辑? 我目前正在尝试最基本的示例。我在行中添加了一些评论。你能为我澄清一下吗? // I don't understand why this method must be marked as `async`. private async void button1_Click(object sender, EventArgs e) { Task<int> access = DoSomethingAsync(); // task independent stuff here // this line is reached after the 5 seconds sleep from // DoSomethingAsync() method. Shouldn't it be reached immediately? …

6
在函数内部修改变量后,为什么变量未更改?-异步代码参考
给定以下示例,为什么outerScopeVar在所有情况下都未定义? var outerScopeVar; var img = document.createElement('img'); img.onload = function() { outerScopeVar = this.width; }; img.src = 'lolcat.png'; alert(outerScopeVar); var outerScopeVar; setTimeout(function() { outerScopeVar = 'Hello Asynchronous World!'; }, 0); alert(outerScopeVar); // Example using some jQuery var outerScopeVar; $.post('loldog', function(response) { outerScopeVar = response; }); alert(outerScopeVar); // Node.js example var …

10
为什么在Redux中我们需要中间件来实现异步流?
根据文档,“没有中间件,Redux存储仅支持同步数据流”。我不明白为什么会这样。为什么容器组件不能调用异步API,然后再调用dispatch操作? 例如,想象一个简单的UI:一个字段和一个按钮。当用户按下按钮时,该字段将填充来自远程服务器的数据。 import * as React from 'react'; import * as Redux from 'redux'; import { Provider, connect } from 'react-redux'; const ActionTypes = { STARTED_UPDATING: 'STARTED_UPDATING', UPDATED: 'UPDATED' }; class AsyncApi { static getFieldValue() { const promise = new Promise((resolve) => { setTimeout(() => { resolve(Math.floor(Math.random() * 100)); }, …

30
如何在Android上检查互联网访问?InetAddress永不超时
我得到了一个AsyncTask应该检查网络访问主机名的信息。但是,doInBackground()永不超时。有人知道吗? public class HostAvailabilityTask extends AsyncTask<String, Void, Boolean> { private Main main; public HostAvailabilityTask(Main main) { this.main = main; } protected Boolean doInBackground(String... params) { Main.Log("doInBackground() isHostAvailable():"+params[0]); try { return InetAddress.getByName(params[0]).isReachable(30); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return false; } protected void onPostExecute(Boolean... …

24
如何同步运行异步Task <T>方法?
我正在学习异步/等待,并遇到需要同步调用异步方法的情况。我怎样才能做到这一点? 异步方法: public async Task&lt;Customers&gt; GetCustomers() { return await Service.GetCustomersAsync(); } 正常用法: public async void GetCustomers() { customerList = await GetCustomers(); } 我尝试使用以下方法: Task&lt;Customer&gt; task = GetCustomers(); task.Wait() Task&lt;Customer&gt; task = GetCustomers(); task.RunSynchronously(); Task&lt;Customer&gt; task = GetCustomers(); while(task.Status != TaskStatus.RanToCompletion) 我也从这里尝试了一个建议,但是当调度程序处于挂起状态时,它不起作用。 public static void WaitWithPumping(this Task task) { if (task …

12
Akka的好用例[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 我听说过很多关于Akka框架(Java / Scala服务平台)的赞誉,但是到目前为止,还没有看到很多对用例有用的实际用例。因此,我想听听有关开发人员成功使用它的知识。 仅一个限制:请不要包括编写聊天服务器的情况。(为什么?因为这已被过度用作许多类似事物的示例)

7
异步/等待-什么时候返回Task vs void?
在什么情况下您想使用 public async Task AsyncMethod(int num) 代替 public async void AsyncMethod(int num) 我能想到的唯一情况是您是否需要任务以跟踪其进度。 另外,在以下方法中,async和await关键字不是必需的吗? public static async void AsyncMethod2(int num) { await Task.Factory.StartNew(() =&gt; Thread.Sleep(num)); }

10
AngularJS:使用异步数据初始化服务
我有一个AngularJS服务,我想使用一些异步数据进行初始化。像这样: myModule.service('MyService', function($http) { var myData = null; $http.get('data.json').success(function (data) { myData = data; }); return { setData: function (data) { myData = data; }, doStuff: function () { return myData.getSomeData(); } }; }); 显然,这是行不通的,因为如果doStuff()在myData返回之前尝试进行调用,我将得到一个空指针异常。据我从阅读这里和这里提出的其他一些问题中所知道的,我有一些选择,但是它们似乎都不是很干净(也许我错过了一些东西): 安装服务“运行” 设置我的应用时,请执行以下操作: myApp.run(function ($http, MyService) { $http.get('data.json').success(function (data) { MyService.setData(data); }); }); 然后我的服务将如下所示: myModule.service('MyService', function() …

15
无法在控制台应用程序的“主要”方法上指定“异步”修饰符
我是使用async修饰符进行异步编程的新手。我试图弄清楚如何确保Main控制台应用程序的方法实际上异步运行。 class Program { static void Main(string[] args) { Bootstrapper bs = new Bootstrapper(); var list = bs.GetList(); } } public class Bootstrapper { public async Task&lt;List&lt;TvChannel&gt;&gt; GetList() { GetPrograms pro = new GetPrograms(); return await pro.DownloadTvChannels(); } } 我知道这不是从“顶部”异步运行的。由于无法async在Main方法上指定修饰符,因此如何在main异步方式内运行代码?

11
并行调用异步/等待功能
据我了解,在ES7 / ES2016中,将多个awaitin放在代码中的工作方式类似于.then()带有promise的链接,这意味着它们将一个接一个地执行,而不是并行执行。因此,例如,我们有以下代码: await someCall(); await anotherCall(); 我是否正确理解anotherCall()仅在someCall()完成时才会调用?并行调用它们的最优雅方式是什么? 我想在Node中使用它,所以也许有一个异步库解决方案? 编辑:我不满意此问题中提供的解决方案:减速是由于异步生成器中非并行等待promise,因为它使用生成器,并且我询问的是更通用的用例。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.