有沒有什麼辦法可以把承諾作爲一種承諾產生的結果?如何發送承諾中的收益結果作爲快遞4中的流?
在某些情況下JSON有效負載將是巨大的,它將它作爲一個流發送是有道理的。
function aPromise() {
// result of a postgres query. Using `pg`
return Promise.resolve([
{key1: val1, key2: val2 }
]);
});
}
//express 4 router
let wrap = require('co-express');
router.get('/', wrap(function* (req, res, next) {
let payload;
try {
payload = yield aPromise();
} catch (e) {
return next(e);
}
res.json(payload);
}));
方法'aPromise'使用'pg'獲取一個巨大的數據從postgres的一次性設置。是否還有其他需要的細節? –
您需要知道您的數據結構並決定如何處理它。無論如何,將巨大的數據集拉入節點的內存中並不是一個好主意。這就是爲什麼你應該流。更新我的答案與流 – naugtur
在這種情況下,使用發電機出去折騰,對吧? –