是否有任何javascript库提供与C ++语法类似的承诺和期货。基本上我们想在webworkers中使用它们,我不想要一个回调接口。我希望webworker阻止未来,并在UI线程设置未来值时继续。我已经看过每一个可能的承诺和未来的库,但每件事都需要回调,我们的代码已经很乱了,我们不想让它进一步复杂化。
答案 0 :(得分:0)
http://code.google.com/p/google-caja/source/browse/trunk/src/com/google/caja/ses-promise.js
Btw,Mark Miller正致力于编写JavaScript的并发模型,并为该语言的未来版本添加带语法糖的最终发送语义。来自http://wiki.ecmascript.org/doku.php?id=strawman:concurrency实施SES / ES5的承诺。将Q导出到全球范围。
主要来自Tyler Close的ref_send实现,添加了一个商标表来支持函数的承诺。
- 现实:将JavaScript的事实上的并发模型编译并形式化为一个非正式的模型。
- Promises:一种方法
(Q(p).post(), Q(p).get())
对可能无法同步访问的对象(例如远程对象)进行异步请求。(Q(p).when())
通过强制将回调注册为第一类值的能力,减轻了本地事件循环编程的负担。(Q.async, yield:)
隐含登记承诺的浅层延续。- 句法糖。中缀“!”运算符:最终类似于“。”,用于使最终请求看起来更像是立即请求。
(Q.makePromise())
一个promise扩展机制,以便promise处理程序可以将本地promise操作转换为远程消息。 传输独立性:使用远程对象消息传递作为对称抽象层,隐藏上面列出的各种传输之间令人讨厌的差异以及服务器到服务器的TCP和UDP传输。(Vat())
一个事件循环产生机制,用于产生与产生它的事件循环同时运行的新事件循环。 工作人员独立性:使用Vat API作为围绕工作人员在浏览器上产生的抽象层或在服务器上产生的进程。- 醇>
(Vat.evalLater(), where())
使用JavaScript本身作为移动代码,因此事件循环可以安全地将新行为注入其他事件循环 对称移动代码:将当前使用的JavaScript作为仅从服务器发送的移动代码推广到浏览器。 Async-PGAS:为异步分区全局地址空间模型的表现提供分布式模拟。