cuốn sách gpt4 ai đã làm

Node.js trả về nhiều kết quả lợi nhuận không đồng bộ một cách đồng bộ

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 21:58:34 26 4
mua khóa gpt4 Nike

Tôi đang sử dụng rethinkDB với Node.js. Các yêu cầu sau hoạt động tốt:

hàm myFn () {
trả về co(hàm *() {
hãy truy vấn;

truy vấn = năng suất r.db("my-db")
.table("ứng dụng")
.filter(r.row("id").eq(id))
.run(conn);

trả về query.toArray();
});
}

Tôi muốn trả về nhiều không đồng bộnăng suấtkết quả, nhưng không thành công:

hàm myFn () {
trả về co(hàm *() {
hãy truy vấn, truy vấn2;

truy vấn = r.db("my-db")
.table("ứng dụng")
.filter(r.row("id").eq(id))
.run(conn);


query2 = r.db("my-db")
.table("ứng dụng")
.lọc(...)
.run(conn);

lợi nhuận trả về {q1 : truy vấn, q2 : truy vấn2};
});
}

Sau đó với mỗi phần tử tôi phải gọi toArray(), vì vậy trong chức năng gọi điện, tôi thực hiện như sau:

 // sử dụng ramda.js
var res = R.map((el) => {
return el.toArray();
}, mang lại myFn);

Nhưng tôi nhận được:

{
"q1": {
"isFulfill": sai,
"bị từ chối": sai
},
"q2": {
"isFulfill": sai,
"bị từ chối": sai
}
}

Ngoài ra còn có một số điều kỳ lạ:

 // cái này hoạt động hoàn hảo
return q.toArray();

// cái này trả về như sau:
return {q: q.toArray()};
"q": {
"isFulfill": đúng,
"bị từ chối": sai,
"Giá trị thực hiện": [ ... ]
}

Tôi nghi ngờ tôi đã bỏ lỡ nó năng suất hoạt động, vậy làm thế nào để trả lại nhiều năng suất Kết quả hoàn thành của kết quả?

câu trả lời hay nhất

năng suất Không áp dụng cho các đối tượng chứa Promise - nó chỉ áp dụng cho chính Promise. thay vì returnfield {q1: truy vấn, q2: query2}; bạn phải làm điều này

return {q1: truy vấn lợi nhuận, q2: truy vấn lợi nhuận2};

Tuy nhiên, điều này hơi rắc rối vì trong truy vấn Sẽ không ném trước khi hoàn thành truy vấn2 lỗi trong. vì vậy nếu bạn khôngchỉ muốn thực hiện chúng một cách tuần tự , bạn sẽ phải sử dụng Hứa.tất cả Để chờ một bộ Lời hứa "song song":

var [q1, q2] = suất Promise.all([truy vấn, query2]);
trả về {q1, q2};

(Tùy thuộc vào thư viện Promise bạn sử dụng, cũng có thể có hàm trợ giúp coi đối tượng là một tập hợp chứ không chỉ là một mảng)

Về việc Node.js trả về đồng bộ nhiều kết quả lợi nhuận không đồng bộ, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/33823724/

26 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress