2010-11-08 32 views
5

Có thể tạo ra các phương pháp xích mà không đồng bộ như thế này trong Node.jsTạo các phương thức xích trong node.js?

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

Đó là để nói non-blocking.

+0

Nếu nó không bị chặn, không nên có chức năng gọi lại được truyền ở đâu đó? –

+0

@Matthew: Đúng vậy. Vì vậy, tôi tự hỏi nếu có một số cách để tạo ra một phương pháp chuỗi đó là asynch. Có lẽ với một thư viện có thể xử lý nó tự động bằng cách nào đó. – ajsie

Trả lời

8

Bạn về cơ bản muốn trừu tượng tính chất không đồng bộ của hoạt động tập tin xử lý trên API của bạn.

Nó có thể được thực hiện, tôi sẽ khuyên bạn để cung cấp cho một cái nhìn vào bài viết sau đây:

Bài báo được viết bởi Dustin Diaz, người hiện đang làm việc trên @anywhere JavaScript API, và anh ta thực hiện chính xác những gì bạn muốn, bằng cách sử dụng một thực thi Queue đơn giản, một giao diện thông thạo có thể được tạo ra, độc lập với bất kỳ cuộc gọi lại nào.

asynchronicity bị ẩn và nó được xử lý nội bộ bởi API của bạn, đó là một kỹ thuật tốt và đơn giản.

+0

Có thư viện nào không? – ajsie

+0

Liên kết @anywhere đã chết: ( –

+0

+1 cho thư viện. Tôi đã xem https://github.com/FuturesJS/FuturesJS có API 'chainify' nhưng không thể tìm thấy thông tin về cách sử dụng nó –

0

Chắc chắn, giống như bất kỳ JavaScript nào, bạn chỉ cần trả về một đối tượng có phương thức đó.

Bố cục có thể (trong số nhiều).

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

Xin lỗi tôi quên nói với bạn rằng mã phải không đồng bộ trong Node.js. Tôi đã chỉnh sửa bài đăng. – ajsie

Các vấn đề liên quan