我看到D有期货,可以创建线程,但是有没有像“Dart”期货/承诺(或者我猜javascript,如果你使用库)?
我希望能够编写这样的代码 -
//
// NOT D code because I can't remember all the syntax!
//
auto fut = myfile.read();
fut.then(function(data) {
// Process data asynchronously when the future completes
};
我希望回调在与主代码相同的线程上。这可能需要某种偶数队列和事件调度。 我认为boost中的ASIO为C ++提供了一些类似的功能,但是具有更好语法的东西会很好。
核心D中是否有类似的内容,或者为异步代码实现单线程期货的简单方法?
答案 0 :(得分:3)
我建议你看一下vibe.d:http://vibed.org/ 它使您能够编写高性能事件驱动的代码,就像您从nodejs中所知,但是使用D的光纤以同步方式编写代码:http://dlang.org/phobos/core_thread.html#.Fiber
答案 1 :(得分:1)
std.parallelism库可用于模拟期货和承诺。我还没有尝试过,但它在库的页面和article discussing concurrency in D上都有记录。即使它没有明确地使用“未来”和“承诺”这两个词,它看起来也很容易。