草庐IT

await-async

全部标签

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 - 为什么 'await' 在 '.then()' 函数返回的代理上触发 'async'?

我正在使用babel(env)编译代码,向下编译为ES5。代码如下:(async()=>{constp=async()=>{returnnewProxy({},{get:(target,property)=>{console.log(property);}})};constr=awaitp();//awaitcalls.thenontheresultofp()})(); 最佳答案 它实际上发生了两次。Whyis.then()triggeredonaProxyreturnedbyanasyncfunction?asyncfunctio

javascript - 使用 await 调用/申请/绑定(bind)

这个问题在这里已经有了答案:MethodsinES6objects:usingarrowfunctions(6个答案)关闭4年前。我必须使用基于回调的API,但我想保留我的异步函数。这就是为什么我要尝试编写depromisify函数:constdepromisify=fn=>{if(!(fn[Symbol.toStringTag]==='AsyncFunction')){returnfn;}//Canbe`async`asthecallerwon'tuseassignmenttogettheresult-it'sallboundtothe`cb`returnasyncfunction(

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 - 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});}});我只想测试一个条件..如

javascript - ES6 Promise 替换 async.eachLimit/async.mapLimit

在async,如果我需要将异步函数应用于1000个项目,我可以这样做:async.mapLimit(items,10,(item,callback)=>{foo(item,callback);});以便同时处理10个项目,限制开销并允许控制。使用ES6promise,虽然我可以轻松做到:Promise.all(items.map((item)=>{returnbar(item);}));这将同时处理所有1000个项目,这可能会导致很多问题。我知道Bluebirdhavewaystohandlethat,但我正在寻找ES6解决方案。 最佳答案

javascript - 在不使用 async/await 的情况下按顺序执行 promise 数组

假设我有一系列promise。我的数组中的每个元素都是一个knex.js查询生成器,并准备好执行并返回一个promise。如何按顺序运行此数组的每个元素。该数组是动态构建的。letpromisesArray=[q1,q2,q3];每个q本身不是一个promise,但它会在执行时返回一个promise。 最佳答案 这里可能是一个可能的选择:letp=Promise.resolve([]);promisesArray.forEach(q=>{p=p.then(responses=>{//basedonthenatureofeachq,t

javascript - "async defer"一起使用有什么作用?

这个问题在这里已经有了答案:CanyouuseboththeasyncanddeferattributesonaHTMLtag?(6个答案)关闭4年前。我遇到了以下代码:我明白将下载脚本,然后解析它暂停HTML解析。我也明白将在解析完所有HTML后下载脚本并解析。什么是做(例如异步和延迟一起使用)?