Questions tagged «synchronous»



10
同步编程和异步编程之间有什么区别(在node.js中)
我一直在阅读nodebeginner, 并且遇到了以下两段代码。 第一个: var result = database.query("SELECT * FROM hugetable"); console.log("Hello World"); 第二个: database.query("SELECT * FROM hugetable", function(rows) { var result = rows; }); console.log("Hello World"); 我得到了他们应该做的事情,他们查询数据库以检索查询的答案。然后console.log('Hello world')。 第一个应该是同步代码。第二个是异步代码。 这两部分之间的区别对我来说很模糊。输出是什么? 搜寻异步编程也没有帮助我。

4
jQuery:执行同步AJAX请求
我过去曾经做过一些jQuery,但是我完全坚持了这一点。我了解使用同步ajax调用的优缺点,但是在这里将是必需的。 远程页面已加载(由firebug控制),但未显示任何返回信息。 我应该采取什么措施才能使函数正确返回? function getRemote() { var remote; $.ajax({ type: "GET", url: remote_url, async: false, success : function(data) { remote = data; } }); return remote; }
187 ajax  jquery  synchronous 

10
如何在Node.js或Javascript中将异步函数调用包装到同步函数中?
假设您维护一个公开一个函数的库getData。您的用户调用它来获取实际数据: var output = getData(); 数据被保存在文件中,因此您可以getData使用内置的Node.js来实现fs.readFileSync。两者都很明显,getData并且fs.readFileSync都是同步功能。有一天,您被告知将基础数据源切换到一个仓库,例如只能异步访问的MongoDB。还被告知要避免惹恼您的用户,getDataAPI不能更改为仅返回promise或要求回调参数。您如何满足这两个要求? 使用回调/承诺的异步功能是JavasSript和Node.js的DNA。任何不平凡的JS应用程序都可能会渗透这种编码样式。但是这种做法很容易导致所谓的厄运回响金字塔。更糟糕的是,如果调用链中任何调用方中的任何代码都取决于异步函数的结果,则这些代码也必须包装在回调函数中,从而在调用方上施加编码样式约束。我不时发现有必要将异步功能(通常在第三方库中提供)封装到同步功能中,以避免大规模的全局重构。在这个问题上寻找解决方案通常以节点光纤结束或从中派生的npm软件包。但是,光纤无法解决我面临的问题。甚至Fibers作者提供的示例也说明了这一缺陷: ... Fiber(function() { console.log('wait... ' + new Date); sleep(1000); console.log('ok... ' + new Date); }).run(); console.log('back in main'); 实际输出: wait... Fri Jan 21 2011 22:42:04 GMT+0900 (JST) back in main ok... Fri Jan 21 2011 22:42:05 GMT+0900 (JST) 如果功能Fiber确实将异步功能睡眠转变为同步,则输出应为: wait... Fri Jan 21 …

8
用JavaScript等待一些异步任务完成的最简单方法?
我想删除一些mongodb集合,但这是一个异步任务。该代码将是: var mongoose = require('mongoose'); mongoose.connect('mongo://localhost/xxx'); var conn = mongoose.connection; ['aaa','bbb','ccc'].forEach(function(name){ conn.collection(name).drop(function(err) { console.log('dropped'); }); }); console.log('all dropped'); 控制台显示: all dropped dropped dropped dropped 确保all dropped删除所有收藏集后将被打印的最简单方法是什么?任何第三方都可以用来简化代码。

11
document.createElement(“ script”)同步
是否可以.js同步调用文件,然后立即使用它? <script type="text/javascript"> var head = document.getElementsByTagName('head').item(0); var script = document.createElement('script'); script.setAttribute('type', 'text/javascript'); script.setAttribute('src', 'http://mysite/my.js'); head.appendChild(script); myFunction(); // Fails because it hasn't loaded from my.js yet. window.onload = function() { // Works most of the time but not all of the time. // Especially if my.js injects another script that …

10
如何强制顺序执行Javascript?
我只发现了涉及类,事件处理程序和回调的相当复杂的答案(在我看来,这似乎是一种大锤方法)。我认为回调可能有用,但我似乎无法在最简单的上下文中应用这些回调。请参阅以下示例: <html> <head> <script type="text/javascript"> function myfunction() { longfunctionfirst(); shortfunctionsecond(); } function longfunctionfirst() { setTimeout('alert("first function finished");',3000); } function shortfunctionsecond() { setTimeout('alert("second function finished");',200); } </script> </head> <body> <a href="#" onclick="javascript:myfunction();return false;">Call my function</a> </body> </html> 这样,第二个功能在第一个功能之前完成;强制第二个功能延迟执行直到第一个功能完成的最简单方法是什么(或有没有?)? - -编辑 - - 因此,这是一个垃圾示例,但是感谢David Hedlund,我在这个新示例中看到了它确实是同步的(以及在测试过程中使浏览器崩溃!): <html> <head> <script type="text/javascript"> function myfunction() { …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.