Hirdetés
- A '90-es évek jutnak az eszünkbe az ATK készülő egeréről
- Huszadik születésnapjára eléggé megváltozott az Antec nagytornya
- Még a saját szövetségeseivel szemben is fegyverként használná az AI-t az USA
- Mégis meglepi egy új GeForce-szal a rajongókat az NVIDIA?
- Lassan 2027-re is elfogy a TSMC 2 nm-es gyártókapacitása
- Gaming notebook topik
- Intel Core i3 5xx / Core i5 6xx "Clarkdale" (LGA1156)
- VR topik
- Androidos tablet topic
- Pedzegeti az új Xbox irányát a Microsoft
- Kormányok / autós szimulátorok topikja
- Milyen billentyűzetet vegyek?
- HiFi műszaki szemmel - sztereó hangrendszerek
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- A Radeon HD 7870 és HD 7850 tesztje
-
PROHARDVER!
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
Jim-Y
veterán
Sziasztok.
Promise-os kérdésem lenne. Arra lennék kváncsi, hogy hogyan lenne szerintetek érdemes használni, vagy hogy elegáns használni a promise-okat. Adott a következő szituáció:
- van egy REST service:
server.get( '/get/articles', getArticles );
- van azt ezt feldolgozó getArticles függvény
- illetve van egy articleProvider osztály/modul amit a getArticles függvényből hívok meg. Ponstosabban annak findAll metódusát. Ez felelős az adatbázisból való kiolvasásértA kérdés, hogy a getArticles / findAll függvényt hogy kéne megrni, több (működő) verzió is született már, de nem tudom eldönteni, hogy melyik a szép/jó/használható megoldás.
Megoldás 1, ez született legkésőbb, szerintem ez a legjobb:
function getArticles( req, res, next ) {
var promise = new mongoose.Promise;
promise.onResolve(function( err, articles ) {
if( err ) {
console.error( err );
res.send("Could not read articles");
}
res.send( articles );
});
articleProvider.findAll( promise );
}ArticleProvider.prototype.findAll = function( promise ) {
this.Article.find({}, function ( err, articles ) {
if( err ) {
promise.reject(new Error( err ));
}
promise.fulfill( articles );
});
}Megoldás 2:
function getArticles( req, res, next ) {
articleProvider.findAll().fulfill(res);
//articleProvider.findAll()
.reject(new Error("Valamiért rejecteljük"));
}ArticleProvider.prototype.findAll = function() {
var promise = new Promise,
self = this;
promise.onResolve(function( err, res ) {
if( err ) {
console.error( err );
}
self.Article.find({}, function( err, articles ) {
if( err ) {
promise.reject(new Error( err ));
}
res.send( articles );
});
});
return promise;
};Ez a reject-re amúgy sem működik jól, mert a res-t nem tudjuk átadni.
Megoldás 3:
Ez jó, illetve kompakt, de igy meg nem tudjuk rejectelni ha kéne.
function getArticles( req, res, next ) {
var promise = articleProvider.findAll();
promise.onResolve(function( err, articles ) {
if( err ) {
res.send(new Error( err ));
}
res.send( articles );
});
}ArticleProvider.prototype.findAll = function() {
return this.Article.find().exec();
};stb, még tudnék pár verziót összerni

Vélemények?
Üdv, és köszi. Remélem érthető a példakód ^^
megj: mindhárom megoldás működik egyébként.
Új hozzászólás Aktív témák
- Luck Dragon: Asszociációs játék. :)
- Nothing Phone 2a - semmi nem drága
- Szeged és környéke adok-veszek-beszélgetek
- Amazfit Bip 6 - jót olcsón
- Path of Exile (ARPG)
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Kerékpárosok, bringások ide!
- Formula-1
- Gaming notebook topik
- gban: Ingyen kellene, de tegnapra
- További aktív témák...
- Apple Watch ULTRA 49mm cellular gyönyörű, 2026 május 30-ig Apple garancia! Akku 86% Fulldoboz!
- LENOVO ThinkPad 13 - i7-7500U, 8GB RAM, 256GB SSD, új akku, számla, 6 hó gar
- Garanciás Acer Nitro V15 15,6"FHD/165Hz/Ryzen 7 7735HS/32GB DDR5/1TB SSD/RTX 4060 8GB/beszámítás van
- Macbook pro 16 2019. I9/32gb ram/512gb ssd/ Amd radeon 4gb
- LG UltraGear 45GS95QE-B Monitor 3 Év Garancia
- Corsair VENGEANCE Pro 32GB (4x8GB) DDR4 2800MHz
- HIBÁTLAN iPhone 13 Pro 128GB Alpine Green-1 ÉV GARANCIA - Kártyafüggetlen, MS4665, 100% AKKSI
- BESZÁMÍTÁS! 2TB Samsung 990 PRO NVMe SSD meghajtó garanciával hibátlan működéssel
- Borzasztóan cuki, elegáns, HALK fileszervernek bőven elég teljesítménnyel és elegáns megjelenéssel
- HP Victus Gaming Laptop RTX 4070 / i7-13700H 16GB DDR5 1TB SSD Garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


