草庐IT

同步异步

全部标签

javascript - 从浏览器插件 (NPAPI) 生成异步 Javascript 事件

我正在编写一个网络浏览器插件(NPAPI)。我的插件启动了一个工作线程,随着工作线程的进行,我想将事件传回Javascript。但由于NPAPI线程模型,工作线程直接回调NPAPI是不合法的,因此工作线程无法调用Javascript。对此的一种解决方案是NPN_PluginThreadAsyncCall函数。但这是一个比较新的功能。例如,只有Firefox3才支持它。有没有办法在不使用NPN_PluginThreadAsyncCall的情况下从NPAPI插件获取异步事件传递/javascript执行?在添加此功能之前人们做了什么? 最佳答案

javascript - 通过 nodejs 服务器 + socket.io 从 mp3 文件同步流式传输音乐

我的服务器上有一个mp3文件。我希望所有访问该url的客户都能同步收听该音乐。也就是。假设文件播放了6分钟。我在上午10:00开始播放这首歌上午10:03发出的请求应该从歌曲的第3分钟开始收听。我所有的客户都应该同步收听这首歌。如何使用nodejs和socket.io实现这一点? 最佳答案 编辑:如果您想完全按照要求进行操作,链接上的答案更匹配:https://stackoverflow.com/a/26029102/67945我最初的回答与ipv4多播的好处无关。您正在寻找的是流媒体。随着您的听众基数的增长,使用流媒体(相对于每个

javascript - 通过 JavaScript 的异步跨域 POST 请求?

我可以只创建一个表单并使用它向任何网站发出POST请求,问题是FORM方法不是异步的,我需要知道页面何时完成加载。我尝试使用带有内部表单的iframe解决这个问题,但没有成功。有什么想法吗?编辑不幸的是,我无法控制响应数据,它从XML、json到简单文本不等。 最佳答案 您可以捕获iframe的onload事件。将您的form定位到iframe并监听onload。但是,您将无法访问iframe的内容,只能访问事件。尝试这样的事情:...脚本block:varloadComplete=0functionloaded(){//avoid

javascript - 如何同步服务器端和客户端代码?

我在软件工程领域一直在学习(和教授)的一点是,代码重复是万恶之源。另一方面,我发现很难解释这个概念应该如何应用于Web应用程序的开发。请允许我澄清一下...输入和数据验证可能是网络应用程序的重要组成部分。有时这种验证可能非常复杂。例如,我在拼图编辑器上工作,验证包括检查操作或移动是否有效。然后必须检查非平凡规则。当然,验证必须在服务器端进行,以确保存储数据的一致性和质量。但是,必须在客户端进行验证以确保流畅的用户体验。在大多数情况下,客户端和服务器端代码是用不同的语言(即javascript/Python)编写的,因此验证代码必须编写两次。然而,在我使用GWT/Java(两边都是Jav

javascript - 等待异步 javascript 函数返回

我正在使用第三方库提供的函数。这个函数接受一个回调函数作为参数,但我想等这个回调函数被调用后再继续。是否有标准/可接受的方法来执行此操作? 最佳答案 我不确定这是否适合您,但您可以通过将代码分成2个函数来实现预期的结果。假设这是你打算做的:基本上这是您的原始功能:functionorigFunc(){codeBeforeThirdPartyFunc();ThirdPartyFunc(oldCallBackFunc);Wait();codeAfterCallBackFunc();}您可以修改代码流,例如:functionnewFunc

Javascript 异步执行 : will a callback interrupt running code?

我只是希望有人能为我澄清这一点。如果我使用node.js在服务器端运行以下代码,不在浏览器中:console.log("a");db.get('select*fromtable1',function(result){console.log("b");});console.log("c");假设数据库调用是异步的我应该得到结果acb但是如果我要将以下行添加到我的代码底部while(1);那么b永远不会执行,对吗? 最佳答案 如果您谈论的是客户端javascript执行,那么您是正确的(直到浏览器决定停止您的无限循环)。客户端javas

javascript - 为您的网站异步加载谷歌翻译小部件的方法?

有没有办法为您的网站异步加载Google翻译小部件?我尝试将它放在我的页面底部,但#google_translate_element容器仍然是空的。functiongoogleTranslateElementInit(){newgoogle.translate.TranslateElement({pageLanguage:'en',includedLanguages:'ar,bg,bn,de,el,eo,es,en,fr,hi,id,it,iw,ja,ko,pl,pt,ru,th,tr,vi,zh-CN',layout:google.translate.TranslateElement

javascript - 使for循环中的函数调用同步

我在请求中得到了一个字符串数组。每个字符串都包含一个要在nativeshell上执行的命令。varprocess=require('child_process');functionexecCommand(req,res,callback){varparams=req.params.list//listisanarrayintherequestvarresult='';varcommand='';for(vari=0;i所有命令的结果都混合在result变量中。如何使for循环中的函数调用同步? 最佳答案 使用execSync而不是e

JavaScript:while 循环中的异步方法

我正在处理一个项目,该项目要求我将JavaScript与API方法调用结合使用。我是一名Java程序员,之前从未进行过Web开发,所以我遇到了一些麻烦。此API方法是异步的,并且处于while循环中。如果它返回一个空数组,则while循环结束。否则,它会循环。代码:vardone=true;do{async_api_call("method.name",{//Dostuff.},function(result){if(result.error()){console.error(result.error());}else{//Setsthebooleantotrueifthereturn

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

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