2010-11-08 72 views
5

是否有可能創建一個是異步像這樣的node.js在node.js中創建鏈接的方法?

File.create('file.jpg').rename('renamed.jpg').append('Hello World') 

也就是說非阻塞鏈接的方法。

+0

如果它是非阻塞的,不應該在某處傳遞迴調函數嗎? – 2010-11-08 06:31:05

+0

@Matthew:是的。所以我想知道是否有辦法創建一個異步的方法鏈。也許有一個圖書館,可以自動處理它以某種方式。 – ajsie 2010-11-08 06:48:35

回答

8

你基本上要抽象文件處理操作對你的API異步特性。

這是可以做到的,我會建議你給看看下面的文章:

該文章由達斯汀·迪亞茲,誰目前工作於@anywhere JavaScript API,並且他完全按照你想要的,使用簡單的Queue實現,可以創建流暢的接口,獨立於任何回調。

異步是隱藏的,它由您的API在內部處理,這是一個很好和簡單的技術。

+0

有沒有這方面的圖書館? – ajsie 2010-11-08 06:50:55

+0

@anywhere鏈接已死: – 2011-09-03 11:15:27

+0

對於一個庫來說,我確實碰到過有一個'chainify' API的https://github.com/FuturesJS/FuturesJS,但是找不到關於如何使用它的信息 – 2014-01-07 09:06:16

0

當然,就像任何JavaScript一樣,你只要返回一個具有該方法的對象。

一個可能的佈局(其中很多)。

var File = new (function() 
{ 
    this.create = function(str) 
    { 
    return this; 
    } 
    this.rename = function(str) 
    { 
    return this; 
    } 
})(); 
+1

對不起,我忘了告訴你,Node.js中的代碼必須是異步的。我編輯了這篇文章。 – ajsie 2010-11-08 06:27:49