Có cách nào để giới hạn số lượng đồng thời Q hứa hẹn sẽ được thực hiện cùng một lúc trong nút js không?Giới hạn Q lời hứa đồng thời trong Node js
Tôi đang xây dựng một trình gỡ rối web, yêu cầu và phân tích hơn 3000 trang và không cần điều chỉnh một số yêu cầu mà tôi đưa ra không được trả lời đúng thời gian, vì vậy kết nối sẽ nằm và phản hồi cần thiết (mã html) không có sẵn.
Để phản tác vụ này, tôi thấy rằng việc hạn chế số lượng yêu cầu mà sự cố của tôi biến mất.
Tôi đã thử các phương pháp sau đây nhưng không có kết quả:
- Concurrency limit in Q promises - node
- How can I limit Q promise concurrency?
- https://gist.github.com/gaearon/7930162
- https://github.com/ForbesLindesay/throat
tôi cần phải yêu cầu một loạt các url, chỉ thực hiện 1 yêu cầu tại một thời điểm và khi tất cả các url trong mảng đã hoàn thành, sau đó trả lại kết quả trong một mảng.
function processWebsite() {
//computed by this stage
urls = [u1,u2,u3,u4,l5,u6,u7,u8,u9];
var promises = throttle(urls,1,myfunction);
// myfunction returns a Q promise and takes a considerable
// amount of time to resolve (approximately 2-5 minutes)
Q.all(promises).then(function(results){
//work with the results of the promises array
});
}
Tôi nghĩ đến một cái gì đó tương tự, nhưng điều này dường như đánh bại mục đích của lời hứa, nó có cấu trúc rất giống với gọi lại chuẩn trong JavaScript. Ngoài ra tôi không thể dễ dàng chỉ định một đồng tiền tối đa lớn hơn 1 với kiểu mã này. Không có giải pháp loại Q-lời hứa ga? – user3438286
tôi nghĩ rằng một phiên bản chung là đạt được. Tôi chỉnh sửa câu trả lời của tôi. Một lời hứa Q-ga sẽ hoạt động theo cách này, tôi nghĩ vậy. –
Cảm ơn bạn, tôi nghĩ rằng tôi có thể làm việc từ đây – user3438286