Is it possible to create chained methods that are asynchronous like this in node.js
File.create(\'file.jpg\').rename(\'renamed.jpg\').append(\'Hello World\')
You basically want to abstract the asynchronous nature of the file-handling operations on your API.
It can be done, I would recommend you to give a look to the following article:
The article was written by Dustin Diaz, who currently works on the @anywhere JavaScript API, and he does exactly what you want, using a using a simple Queue implementation, a fluent interface can be created, being independent of any callback.
The asynchronicity is hidden and it is handled internally by your API, it's a nice and simple technique.
Sure, like any JavaScript, you just return an object that has that method.
One possible layout (among many).
var File = new (function()
{
this.create = function(str)
{
return this;
}
this.rename = function(str)
{
return this;
}
})();