I am trying to implement a shopify api in node and want to call the post requests synchronously since i want to retrieve the product id after posting and store it in an array. I am making use of a library called deasync as a synchronous waiting loop. The script used to work before and suddenly stopped working. When i log my calls without the deasync loop, i see that responses are returned from shopify, however, when I'm running my script with the deasync loop, my identifier stays null, and the deasync loop keeps iterating. I am relatively new to asynchronous requests in node.js. The scope of my identifier variable seems correct. The only thing I can imagine for now is that the callback happens in a parallel node.js universe that is seperate from my while loop. Any help would be much appreciated, thx!
function postProduct(Store, product, variants) {
var identifier = null;
var post_data = {
"product": product
};
Shopify.post('/admin/products.json', post_data, function(err, data, headers) {
identifier = {
id: data.product.id,
price: data.product.price,
variants: variants
};
});
while(identifier === null) {
require('deasync').runLoopOnce();
}
return identifier;
}