2010-11-15 33 views

Trả lời

6

Thật không may tôi không nghĩ rằng nó có thể được thực hiện. Một khi bạn bắt đầu thực hiện một chức năng nó sẽ tiếp tục cho đến khi chấm dứt chức năng. Tôi tin rằng những gì bạn có thể muốn thử là tạo ra hai chức năng với một cuộc gọi lại đến chức năng thứ hai được đăng ký với sự kiện bạn đang nghe. Tuy nhiên, thật khó để biết rằng chắc chắn vì bạn chưa đăng bất kỳ mã nào.

+0

Rất khó để tôi không viết mã gây hiểu lầm, nhưng bạn đã hiểu chính xác. Và cảm ơn bạn đã trả lời. Tôi đã thực hiện nó rồi. –

+0

với tôi điều này có vẻ giống như lỗ hổng lớn nhất trong javascript. Nếu các chức năng có thể tạm dừng, chúng ta chỉ có thể thực hiện các cuộc gọi IO không đồng bộ mà không bị chặn và không đi vào địa ngục gọi lại. – light24bulbs

+0

@ light24bulbs Bất kể ngôn ngữ nào, nếu bạn từng thấy mình nghĩ "Tôi ước tôi có thể tạm dừng chức năng này", điều bạn đang thực sự nói là bạn muốn có hai hàm. –

2

Bạn nên quấn nửa cuối của mã của bạn trong một chức năng ẩn danh và đính kèm nó như một xử lý sự kiện:

function myFunction() { 
    firstHalfOfMyFunction(); 
    eventEmitter.on('someEvent', function() { 
     secondHalfOfMyFunction(); 
    }); 
} 
2

Bạn có thể sử dụng node-fibers mà tôi sử dụng trong thư viện Common Node tôi.

+0

Có vẻ như phản ứng hoàn hảo đối với tôi. Đang thử nút sợi ngay bây giờ. –

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