Loading products using process function does not stop
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- javascript, nodejs
- Ambito
- api
Direzione di ricerca
Inizia dal punto di ingresso products.perPage(PER_PAGE).process(...) mostrato nella riproduzione e traccia il modo in cui vengono richiesti i batch dopo che il callback di processo modifica res.body.results. Riproduci il problema con i conteggi dei prodotti indicati e la rimozione di item.id; il lavoro è completato quando l’elaborazione si interrompe dopo tutti i prodotti e viene eseguito il completion handler finale.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Expected behavior
Function sphere.products.perPage(50).process(function process(res){}) should load products in batches and send them to process function.
Actual behavior
If I add this code to process function, loading will never stop.
var list = res.body.results;
list = list.map(function (item) {
delete item.id; // when commented out - loading works as expected
return item;
});
Steps to reproduce the behavior
I was testing it on:
- project with 639 products and perPage = 50
- project with 1 product and perPage = 1
It looks like it occurs when perPage <= productCount
Here is full code which gives me an error.
var _ = require('lodash');
var Promise = require('bluebird');
var Sphere = require('sphere-node-sdk');
var SphereUtils = require('sphere-node-utils');
var SphereClient = Sphere.SphereClient;
var ProjectCredentialsConfig = SphereUtils.ProjectCredentialsConfig;
var sourceCredentials, sourceClient;
var PER_PAGE = 50;
var projectKey = "<product-key>";
var total = 0;
console.log('>> Loading products from %s', projectKey);
ProjectCredentialsConfig.create()
.then(function (credentials) {
sourceCredentials = credentials.enrichCredentials({project_key: projectKey});
sourceClient = new SphereClient({config: sourceCredentials});
console.log("Loading per page %d", PER_PAGE);
var total = 0;
return sourceClient.products
.perPage(PER_PAGE)
.process(function(res) {
var list = res.body.results;
total += list.length;
console.log('Loaded %d / totally %d', list.length, total);
list = list.map(function (item) {
delete item.id; // when commented out - loading works as expected
return item;
});
return Promise.resolve();
})
})
.then(function() {
console.log("Finished - total %d", total);
})
.catch(function (err) {
console.error("Final error:", err.stack || err);
});
- Lingua principale
- CoffeeScript
- Stelle
- 16
- Fork
- 8
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di commercetools/sphere-node-sdk
-
Type: Enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 52/100
commercetools/sphere-node-sdk#346 ·
-
Type: Bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 35/100
commercetools/sphere-node-sdk#309 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 35/100
commercetools/sphere-node-sdk#252 · 1 commento · 1 reazione ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 38/100
commercetools/sphere-node-sdk#215 · 4 commenti ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
commercetools/sphere-node-sdk#184 ·
Tutte le issue di commercetools/sphere-node-sdk
Issue simili
-
priority: low 🌱 type: enhancement 💅🏼
Difficoltà 2/5 Mezza giornata Idoneità per principianti 84/100
nebari-dev/llm-serving-pack#199 ·
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
linebender/parley#849 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
rohitg00/agentmemory#1428 ·
I maintainer di solito rispondono entro 1 giorno