草庐IT

async-await

全部标签

javascript - async/await 会阻塞事件循环吗?

这个问题在这里已经有了答案:Willasync/awaitblockathreadnode.js(6个答案)InJavaScript,doesusingawaitinsidealoopblocktheloop?(8个答案)关闭4年前。我正在阅读Don'tBlocktheEventLoop来自Node.js指南。有一句话说:YoushouldmakesureyouneverblocktheEventLoop.Inotherwords,eachofyourJavaScriptcallbacksshouldcompletequickly.Thisofcoursealsoappliestoyo

javascript - 等待所有不同的 promise 完成 nodejs(异步等待)

我目前正在等待所有promise像这样按顺序完成:(async()=>{letprofile=awaitprofileHelper.getUserData(username);lettoken=awaittokenHelper.getUserToken(username);console.log(profile);console.log(token);return{profile:profile,token:token};})();但是这样,profile和token是顺序执行的。由于两者是相互独立的,所以我希望它们都一起独立执行。我认为这可以使用Promise.all来完成,但我不确

javascript - 在没有 I/O 的情况下,javascript(在浏览器中)的异步/ promise 是否有益?

我正在尝试为json-api找到一个好的反序列化器/反规范化器(事实证明这非常困难)。我遇到过几个示例,其中反序列化过程(基本上只是对关系进行反规范化和扁平化属性)被定义为异步函数。Here'sonesuchexample,但我发现了很多。现在,我对node/javascript的理解是它基于受I/O限制的系统,因此它的设计是操作应该是非阻塞的,以便其他操作可以在I/O期间进行调度,因此我们获取并发操作。然而,我不明白的是像这样的反序列化器中的用法。我们在反序列化时拥有完整的有效负载,没有任何I/O发生。我只能猜测作者假设关系查找可以同时发生,但是,由于javascript仍然是单线程

javascript - Request-Promise 使用 async/await 抛出 "no auth mechanism defined"

我刚刚尝试使用request-promise进行async/await并遇到了这个错误:RequestError:Error:noauthmechanismdefinedatnewRequestError(node_modules/request-promise-core/lib/errors.js:14:15)atRequest.plumbing.callback(node_modules/request-promise-core/lib/plumbing.js:87:29)atRequest.RP$callback[as_callback](node_modules/request

Javascript,如何等待多个 promise

这个问题在这里已经有了答案:HowdoIconvertanexistingcallbackAPItopromises?(24个答案)关闭4年前。我要实现的目标:收集艺术家ID要么在数据库中找到它们或创建它们在数据库中创建一个事件,获取event_id等待两者都完成,收集艺术家和事件ID现在遍历艺术家、事件组合我得到的:我正在使用Node和mysql。要插入关系,我必须等待艺术家插入或创建。我尝试使用以下代码完成:letpromises=[];if(artists.length!=0){for(keyinartists){promises.push(find_artist_id_or_c

javascript - Apollo "Subscription field must return Async Iterable. Received: undefined"

我有一个触发channel事件“countIncr”的突变,但我没有看到事件的相应订阅与事件负载一起触发。更新:我已经对这篇文章进行了多次更新,现在我正在更改标题以更能代表我所在的位置。我收到graphqlPlayground错误"SubscriptionfieldmustreturnAsyncIterable.Received:undefined"我遇到问题的TGRstack复制:https://github.com/TGRstack/tgr-apollo-subscription-example-microservice/没有TGRstack的工作再现:https://github

javascript - 使用 Jasmine async 测试 postMessage 不起作用

我正在尝试使用Jasmine2.0为AngularJS应用程序中的某些逻辑编写单元测试,但该逻辑位于事件监听器中。来自Controller:window.addEventListener('message',function(e){if(e.data==="sendMessage()"){$scope.submit();}},false);来自测试文件:describe("postmessage",function(){beforeEach(function(done){varcontroller=createController(controllerParams);spyOn($sc

javascript - Bluebird PromisifyAll 没有任何 Async 后缀,即可以替换原始功能吗?

Bluebird有一个promisifyAll函数“通过遍历对象的属性并在对象及其原型(prototype)链上创建每个函数的异步等价物来Promisify整个对象。”它创建带有后缀Async的函数。是否可以完全替换旧功能?被替换的函数就像原始函数一样工作,此外它们还返回一个Promise,所以我认为完全替换旧函数应该是安全的。varobject={};object.fn=function(arg,cb){cb(null,1)};Bluebird.promisifyAll(object);object.fn//donotwantobject.fnAsync//=>shouldrepla

javascript - 如何使用 async/await 去抖动?

我有一个输入框。在用户停止输入后,我想执行一个HTTP请求并等待结果。Here'sajsbin由于jsbin不允许网络请求,因此我使用setTimeout()代替。varlog=console.log.bind(console)vardelayedResults=newPromise(function(resolve){setTimeout(function(){resolve('WoooIamtheresult!')},3000);});document.querySelector('input').addEventListener('input',_.debounce(asyncf

javascript - 调用异步静态函数时出现语法错误

我正在尝试使用Node8.3.0的async/await,我遇到了一些静态函数问题。MyClass.jsclassMyClass{staticasyncgetSmthg(){returntrue;}}module.exports=MyClassindex.jstry{constresult=awaitMyClass.getSmthg();}catch(e){}使用这段代码,我在MyClass上得到了一个SyntaxError:Unexpectedtoken。这是为什么?不能将静态函数与await一起使用,还是我弄错了?谢谢 最佳答案