Tag: 同步

CommonJS模块没有设置variables的值?

我在主文件中的init()函数工作得很好,但是当我把它放入一个单独的模块并且需要它时,显然它停止工作。 我在控制台中得到这个错误 Uncaught TypeError: Failed to set the 'value' property on 'AudioParam': The provided float value is non-finite. 看起来这可能是它的同步问题? 我怎样才能解决这个问题? //init.js file var initt = function () { octaveNumber = document.getElementById("octaveNum"); audioCtx = new (window.AudioContext || window.webkitAudioContext); osc = audioCtx.createOscillator(); volume = audioCtx.createGain(); filter = audioCtx.createBiquadFilter(); osc.connect(filter); volume.connect(audioCtx.destination); booleanVal = false; osc.frequency.value = dial.value osc.start(); […]

节点js。 如何在两个函数之间共享数组? 有没有更复杂的方法

我对nodejs非常陌生,并且陷入了一个函数填充数组而另一个函数读取它的地方。 有没有简单的结构来同步这个。 代码如下所示 let arr = []; let prod = function() { arr.push('test'); }; let consume = function() { process(arr.pop()); }; 我find了一些复杂的方法来做到这一点:( 非常感谢任何帮助…☺️

NodeJs + NickJs:在asynchronous函数中进行同步调用

我正在使用NickJs来制作WebRequests。 在大多数情况下,NickJs做我所需要的(打开浏览器,导航等)。 不过,我需要在继续执行代码之前对另一个服务进行同步调用(自定义WebRequest)。 我无法弄清楚如何正确地使这个调用同步。 我当前的设置使用包装在asynchronous函数中的NickJs,并使用“await”等待WebRequest返回。 我不认为我可以将这个用于我的自定义请求,但我觉得我应该能够做我自己的function,并等待WebRequest完成,然后继续执行代码。 例: const nick = new Nick({ printNavigation: false, printResourceErrors: true, printPageErrors: true, resourceTimeout: 10000, userAgent: "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36", }) ; (async () => { await tab.open("https://google.com") //custom function here to request another webpage from another service //and wait for the result […]

确保最准确的同步

首先我会解释我的问题:我有一个node.js服务器和大量的通过socket.io接收事件的JS客户端。 Web应用程序将结束date(时间戳)发送到node.js服务器,node.js将此时间戳广播给所有客户端。 然后,客户从现在开始计时到给定date。 我的问题是:我的客户想要一个完全同步的应用程序,所以每个客户端必须在每个时刻都有相同的计时器计数。但是每个客户端都没有相同的当前date,所以有不同的计时器计数。 我的第一个解决scheme:我的networking应用发送他的当前时间戳与每个请求,所以,node.js广播这个时间戳。 然后,每个客户端比较他的当前时间戳与服务器的时间戳,并将差异应用到他的计时器… 结果:更好但不完美。 有些定时器不是同步的(由于请求延迟在我看来),我看到一些毫秒(不到一秒)的差异。 那么,你有提案来改进计时器吗? 谢谢大家。

基于另一个http(s)查询的node.js(restify)服务器响应

我想使用下面的代码来设置restify node.js服务器: server.get('/querySomething', function(req, res) { var toReturn = getSomethingElse(req.params); res = toReturn; ]); … var getSomethingElse = function(params) { var somethingElse; var opts = { host: "some.host.com", path: "/x", method: "GET" } var req = https.request(opts, function(res) { res.on('data', function(someResult) { somethingElse = someResult; }); }); return somethingElse; }; 我明白“https.request”调用是asynchronous执行的。 那么我怎样才能等待调用返回,然后再回应“/ querySomethingElse”http请求呢?

express / node.js中的请求之间的同步问题

我在node.js中想到了一个奇怪的同步问题,我没有find一个优雅的解决scheme: 我设置了一个express / node.js Web应用程序,用于从一行数据库表中检索统计数据。 如果表格为空,则填充长计算任务 如果表中的logging大于15分钟,则通过长计算任务进行更新 否则,用显示DB中的logging的网页进行响应。 问题是,当多个用户同时发出请求时,如果logging是旧的,那么每个请求将执行一次长计算任务,而不是一次。 有什么优雅的方式,只有一个请求触发计算任务,所有其他人等待更新的数据库logging?

强制mongoose.savecallback等待写入完成

我认为这很简单,但我似乎无法得到它的工作。 我有两个进程。 一个消费数据,然后是另一个装饰它。 他们通过队列服务连接。 第一个“保存”文档,然后排队第二个: // 'post' is a mongoose object post.save(function (err) { if (!err) { self.decorate('post', post.service, post.id); } }); 服务二接收队列消息,然后尝试查询队列。 但没有find该项目。 该项目会被写入,如果几秒钟后重新运行排队的消息,它会发现它正确。 看起来第二个服务试图在写入完成之前运行。 我如何强制Mongoosecallback等待/同步行动? 我已经尝试在连接选项中添加“safe:true”。

Javascriptdate()初始化格式不正确

我正在写javascript多人游戏,我的服务器代码是在nodejs。 我需要在服务器和客户端之间同步时间。 在服务器端,我调用Date()并将datestring发送给客户端。 客户收到: Tue Apr 28 2015 15:37:01 GMT+0000 (UTC) 初始化后: var time = Date("Tue Apr 28 2015 15:37:01 GMT+0000 (UTC)"); 设置为当地时间的时间variables是: Tue Apr 28 2015 17:37:03 GMT+0200 (CEST). 如果我运行我的服务器本地然后时间正确导入。 问题在不同的时间格式,CEST vs UTC? 谢谢你的答案

如何使一些同步代码在其他asynchronous代码之前运行?

我有这样的function: var download = function(url, name) { http.get(url, function(response) { // part1 : create a new folder if it doesn't exist dir = './name'; if (!fs.existsSync(dir)){ fs.mkdirSync(dir); } // part 2: download and save file into that folder response.on('data', function (data) { fs.appendFileSync(dir, data); }); }) } 我希望第1部分在第2部分运行之前完成(这样我可以为第2部分指定目录)。 我怎样才能做到这一点 ? (在上面的代码中,就我所知(到目前为止,我是node.js的新手),两个部分将同时运行,所以我不确定部分1会在部分2运行之前总是完成)。

如何使用npm synchronize在node.js中的variables中返回callback

我正在使用nodejs,我想避免多个嵌套的callback。 我如何使用synchonize来做到这一点? 更确切地说,我如何从请求的callback中将pubkeysObj返回到一个variables中,并在脚本的其余部分中使用它? var sync = require('synchronize'); var fiber = sync.fiber; var await = sync.await; var defer = sync.defer; try { fiber(function() { console.log('before findKeyPair'); var pubkeysObj2 = await( findKeyPair( defer() ) ); console.log('after findKeyPair pubkeysObj2: ' + pubkeysObj2); console.log('before makeKeyPairs'); var pubkeyArray2 = await( makeKeyPairs( pubkeysObj2, defer() ) ); console.log('after makeKeyPairs pubkeyArray2: ' + […]