草庐IT

javascript - 何时将函数标记为异步

基本上,如果函数内部使用了await,函数必须以async关键字为前缀。但是,如果某个函数只返回Promise而没有等待任何东西,我应该将函数标记为async吗?好像都对不对?//withasync(returnsPromise)asyncgetActiveQueue(){returnredisClient.zrangeAsync(activeQueue,0,-1);}//difference?Bothcouldbeawaitedisn'tit?getActiveQueue(){returnredisClient.zrangeAsync(activeQueue,0,-1);}

javascript - JavaScript 函数是异步的吗?

考虑执行以下函数,functionloadPage(){takeInput();processInput();outputInput();}它们将以什么顺序执行(我有read它跟随堆栈,所以选项2将是答案)?选项#1接受输入();进程输入();输出输入();选项#2输出输入();进程输入();接受输入(); 最佳答案 JavaScript函数不是异步的。一些非常有限的函数集具有异步API:addEventListener,setTimeout,setInterval。这些是仅有的3个(我认为这非常令人惊讶)。它们允许您传递一个回调,

javascript - knockout 验证异步验证器 : Is this a bug or am I doing something wrong?

我真的很喜欢EricBarnard'sknockoutvalidationlib与observable集成,允许分组,并提供自定义验证器可插入性(包括即时验证器)。有几个地方可以使用户体验更加灵活/友好,但总体而言,它的文档相当齐全...except,imo,whenitcomestoasyncvalidators.在进行搜索和landingonthis之前,我今天与此搏斗了几个小时.我想我和原作者有同样的问题/问题,但我同意并不清楚duxa到底在要求什么。我想引起更多关注,所以我也在这里问。functionMyViewModel(){varself=this;self.nestedM

javascript - 异步 .js 文件加载语法

我注意到异步加载js文件的语法似乎略有不同,我想知道这两者之间是否有任何区别,或者它们的功能是否几乎相同。我猜他们的工作原理是一样的,但只是想确保一种方法不会因为某种原因比另一种更好。:)方法一(function(){vard=document,h=d.getElementsByTagName('head')[0],s=d.createElement('script');s.type='text/javascript';s.src='/js/myfile.js';h.appendChild(s);})();/*noteendingparenthesisandcurlybrace*/方法

javascript - 包装异步 JavaScript 函数以使其同步的模式

我正在使用一个JavaScriptAPI,其中大部分函数都是异步的。API是WebKitJavaScriptDatabaseAPI这是对操作SQLite3数据库的功能子集的绑定(bind)。我理解使事物异步而不是阻塞并提供响应式用户界面的设计决策。在我的情况下,我知道我对异步API调用的使用会执行得很快。既然是这种情况,我想为我的开发人员提供一个更简洁、更易于使用的包装API,以强制进行同步调用。这是异步调用db.executeSql(sqlStatement,function(result){//dosomethingwithresult});这是我希望能够做的事情varresult

javascript - 在angularjs中对异步服务进行单元测试

我正在尝试对具有异步方法但运气不佳的服务进行单元测试。我尝试通过使用angularjs中的$q支持来实现promise。如有任何帮助,我们将不胜感激。http://jsfiddle.net/9pBze/37/angular.module('myapp',['myservice']);angular.module('myservice',[]).factory('myservice',function($q){varls={};ls.DoIt=function(){vardeferred=$q.defer();setTimeout(function(){deferred.resolve(

javascript - 如何在不使用 setTimeout 的情况下异步运行 javascript 函数?

它是服务器端Javascript(rhino引擎),因此setTimeout不可用。如何异步运行一个函数? 最佳答案 您可以使用java.util.Timer和java.util.TimerTask滚动您自己的设置/清除超时和设置/清除间隔功能:varsetTimeout,clearTimeout,setInterval,clearInterval;(function(){vartimer=newjava.util.Timer();varcounter=1;varids={};setTimeout=function(fn,delay

javascript - 异步/等待 native 实现

Thisproposal建议async函数可以在幕后使用生成器函数,尽管我在ES2017规范中找不到对此的确认。此外,当生成器原型(prototype)在Chrome/Node.js中变得困惑时,async函数似乎没有受到影响,这表明未使用GeneratorFunction通过AsyncFunction,至少直接:Object.getPrototypeOf((function*(){}).prototype).next=null;(async()=>{returnawaitPromise.resolve(1);})().then(console.log);async/await在现有的

javascript - 在非异步函数中使用 "await"

我有一个异步函数,它由我代码中某处的setInterval运行。此函数定期更新一些缓存。我还有一个不同的同步函数,它需要检索值——最好从缓存中检索,但如果是缓存未命中,则从数据源中检索(我意识到以同步方式进行IO操作是不明智的,但让我们假设在这种情况下这是必需的)。我的问题是我希望同步函数能够等待来自异步函数的值,但无法使用await非async中的关键字功能:functionsyncFunc(key){if(!(keyincache)){awaitupdateCacheForKey([key]);}}asyncfunctionupdateCacheForKey(keys){//upd

javascript - 异步递归函数结束后的回调

下面的函数递归地打印文件夹中的Chrome书签。在处理完最终的递归循环后,如何更改以下函数以调用另一个函数?chrome.bookmarks.getChildren()是异步的,这使得很难知道函数何时处理完所有内容。谢谢。for(vari=0;i编辑:抱歉,我认为我在最初的代码示例中没有说清楚。我更新了代码,通过多次调用该函数来显示我在使用异步函数时遇到的问题。我希望printBookmarks函数调用后的任何代码都等待所有printBookmarks函数完成处理。 最佳答案 您的异步方法实例可能都在一次执行,并且您事先不知道会有多