我想在加载后立即向网络工作者发出一些信息。代码看起来像:
var w = new Worker("worker.js");
w.onmessage = function (ev) {
console.log(ev.data);
};
w.postMessage("Hello World");
在worker.js中,我有:
this.onmessage = function (ev) {
self.postMessage(ev.data);
}
所以,事件流是这样的:
窗口--Hello World-> web worker - Hell
我的主线程的JS代码
$('body').on('click',function(){alert('click');});
var worker = new Worker('worker.js');
worker.addEventListener('message', function(e) {
console.log(e.data);
});
以及worker.js中的代码
var n = 1;
while (true) {
n++;
postMessage(n);
}
我刚刚开始
我正在用js_of_ocaml和node.js做实验。如您所知,node.js广泛使用回调来实现异步请求,而不引入显式线程。
在OCaml中,我们有一个非常好的线程库Lwt,它附带了一个非常有用的语法扩展。我编写了一个带有绑定到某个节点库( AWS S3客户端)的原型,并添加了一个lwt层来隐藏回调。
open Lwt.Infix
open Printf
open Js
let require_module s =
Js.Unsafe.fun_call
(Js.Unsafe.js_expr "require")
[|Js.Unsafe.inje
我只是希望有人能帮我澄清一下。如果下面的代码在node.js上运行服务器端,则不在浏览器中。
console.log("a");
db.get('select * from table1', function(result){
console.log("b");
});
console.log("c");
假设数据库调用是异步的,我应该得到结果
a
c
b
但是如果我要在代码的底部添加下面一行
while(1);
那B就永远不会执行了,对吧?
大家好,我使用html创建了一个基于选项卡的应用程序,并且在一定的时间间隔之后,我使用setInterval从服务器同步应用程序数据。但问题是,在同步数据时,如果我在制表符之间切换,则执行的代码将停止,因此无法完成同步。
我想在不同的线程中调用sync(),但在这方面没有得到任何帮助。任何关于如何实现这一点的想法,以便在切换制表符时,我的JS代码继续执行。我的JS代码的粗略结构是
setInterval(
sync();
,3000);
function sync()
{
// Code for sync data
}