草庐IT

ASynchronous

全部标签

javascript - 在异步函数内的回调中调用 await

这是一些代码(这是一个过于简化的示例,我知道它很愚蠢):functionsleep(ms){returnnewPromise(resolve=>setTimeout(resolve,ms));}asyncfunctiontest(){[1,2,3].map(()=>{console.log('test');awaitsleep(1000);});}test();目标是:显示测试然后等待一秒钟然后显示测试然后等待一秒然后显示测试然后等待一秒但是运行这段代码会导致失败:awaitisareservedword我知道我可以使用for循环修复它:asyncfunctiontest(){for(

javascript - 为什么 async-await 一起运行时比 promises 慢得多

我发现在某些情况下运行async-await会慢很多。functionmakeAPromise(){returnPromise.resolve(Math.random());}functionusingPromises(){constbefore=window.performance.now();returnmakeAPromise().then((num)=>{constafter=window.performance.now();console.log('Total(promises):',after-before,'ms');returnnum;})}asyncfunctionu

javascript - 作用域和异步 JavaScript

我最近在工作中遇到了一个问题,至少根据我对JavaScript的了解,我得到了一个不可能的结果。我希望有人能解释这里发生了什么,以及为什么实际结果与我的预期结果不同。控制台中的预期结果id:a,x:1id:b,x:1id:c,x:1控制台中的实际结果id:c,x:1id:c,x:2id:c,x:3代码functionMyClass(id){varx=0;returnfunction(){returnfunction(){x+=1;console.log("id:",id,",x:",x);}}}functionDoStuff(id){varq=MyClass(id);response_

javascript - 如何制作干净的异步循环?

按照典型的REST标准,我将我的资源分解为单独的端点和调用。这里主要讨论的两个对象是List和Item(当然,列表有一个项目列表,以及与之相关的其他一些数据)。因此,如果用户想要检索他的列表,他可能会向api/Lists发出Get请求然后用户可能想要获取其中一个列表中的项目,并获取api/ListItems/4,其中4是从List.listId检索到的在之前的通话中。一切都很好:$.ajax的options.complete属性让我指向一个回调方法,因此我可以简化这两个事件。但是,如果我想获取所有相关列表的元素,事情就会变得非常困惑。例如,假设我有一个名为makeGetRequest的

javascript - 隐藏回调的变量是不好的做法吗?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。以异步Node函数fs.stat()为例。如果我需要对文件使用fs.stat(),稍后再执行一次,结果会被遮蔽。fs.stat(file,function(err,stats){fs.stat(file,function(err,stats){});});err变量以及stats变量被遮蔽了-如果我不在第二个回调中使用第一个回调,这是否重要?重命名第二个回

javascript - 了解一下 ember/ember-data 对象的生命周期如何。或者调试 Ember.js 和 Ember-Data 的技巧/提示?

我不是在寻找如何调试javascript。我对手头的工具非常熟悉,尽管不熟悉Firefox的新调试功能,因为他们构建了自己的“firebug”。我真的只是在寻找一种简单的方法来读取堆栈跟踪,因为对象/函数很容易通过Ember自己的调用机制运行。很容易忘记被调用的函数是什么以及它附加到的this的绑定(bind)。有没有人在调试ember的堆栈时想到了任何技巧或肺炎?更新:这不是异步调试的问题http://www.html5rocks.com/en/tutorials/developertools/async-call-stack/ 最佳答案

javascript - node.js async.each 回调,我怎么知道它什么时候完成?

我正在努力研究Node.js和一些异步操作。在下面的代码中,我获取一些RSS提要并存储找到的文章(如果我以前没有存储过它们的话)。该代码可以工作并存储新文章。但是,我不确定如何更改它以便我知道何时完成对所有文章的解析。例如,每次达到限制时(在10篇文章或5个提要之后)都会调用每个async.eachLimit的回调。那么我怎么知道它们何时完成?varFeedParser=require('feedparser');varrequest=require('request');varmysql=require('mysql');varasync=require('async');varco

javascript - 在 redux 中使用 thunk 中间件比使用常规函数作为异步操作创建者有什么好处?

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题?更新问题,使其仅关注一个问题editingthispost.6年前关闭。Improvethisquestion我已经使用redux大约两个月了,最近才开始探索处理异步行为(例如获取数据)的不同方法。它出现在documentation来自discussionsonGitHub使用thunkmiddleware执行此操作的标准方法这是一个非常简单的概念,但是我不确定我是否理解在可以使用简单的独立函数时将执行异步状态机的责任交给redux中间件的好处。使用thunk中间件的传统Redux方法异步操作创建者fetchPos

javascript - Node JS Async Promise.All 问题

我正在尝试对从数据库中获取的列表中的一堆项目执行异步例程,但我无法理解promise.all的工作原理和作用。这是我现在使用的代码:/***Queuesuppriceupdates*/functionupdatePrices(){console.log("~~~NowupdatingalllistingpricesfromAmazonAPI~~~");//Grabsthelistingsfromthedatabase,thispartworksfinefetchListings().then(function(listings){//Createsanarrayofpromisesfr

javascript - 带有 if 条件和条件函数列表的 nodejs 和 async.waterfall。

我一直在使用async.waterfall和nodejs。它工作得很好,但现在我有一个关于流程的问题。我想在async.waterfall流程中使用一个简单的if条件。async.waterfall([callOne,callTwo,if(condition>0){callTest1,callTest2,}else{callTest3,callTest4,}callThree,callFour,callFive,],function(err,result){if(err){returnres.status(400).jsonp({error:err});}});我只想测试一个条件..如