首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与mongodb异步,但未正确更新

与mongodb异步,但未正确更新
EN

Stack Overflow用户
提问于 2020-06-30 20:28:39
回答 1查看 38关注 0票数 0

我已经为我们的公司做了一个自定义的应用程序,我已经将条形码存储在数据库中。

然后,每次没有条形码的产品从数据库中获取条形码,并将其分配给产品。

问题是,对于单个产品,我没有问题,而是多个产品。

如果我在shopify上制作了一个带有变体的产品,我会同时获得所有的变体,并且所有变体的条形码都是相同的。

我在mongodb对象中创建了两个值,Barcode : 32112312,默认使用:'false‘。当使用条形码时,我将该值赋值为true。

问题是,当我在同一时间获得5个值时,used字段的更新速度不会那么快,因此它会为所有变量提供相同的条形码。

我尝试过睡眠或超时,但也是这样做的。

这是我的代码,

代码语言:javascript
复制
async.forEach(product.variants,(variant,callback) =>{
                            if(variant.barcode == ''){
                                    // console.log(variant.id);
                                
                                brd.find({used:"false"})
                                .sort({_id: 1})
                                .limit(1)
                                .then(barcode =>{

                                    shopify.productVariant
                                                    .update(variant.id ,({ barcode : barcode[0].barcode }))
                                                    .then((productresult)=> {console.log('To '+productresult.sku +' έχει '+productresult.barcode);
                                                                        
                                                            
                                                        },  (err)=> console.error(err));
                                                        brd.updateOne({_id:barcode[0].id},{used:"true"})
                                                        .then(barcodeupdate=>{
                                                            console.log('barcode added ');
                                                            
                                                            })  
                                                                               
                                                        callback();      
                                });     
                                
                                
                                
                               }
                               
                         });

console.log是这样的

条形码添加到55095έχει1234546546547到55096έχει1234546546547到55098έχει1234546546547到55097έχει1234546546547

我想要这样的东西

至55095έχει1234546546547条形码添加到55096έχει1234546546548条形码添加到55098έχει1234546546549条形码添加到55097έχει1234546546550条形码添加

我想要这样的东西

EN

回答 1

Stack Overflow用户

发布于 2020-07-01 17:03:35

最后我找到了答案!

我创建了一个异步函数,返回一个条形码,然后将其分配给没有条形码的产品。

代码语言:javascript
复制
async function getbarcode(barcodenew){

                                 return brd.findOneAndUpdate({used: barcodenew},{used:"true"}).then(barcodeone => {return barcodeone});
                                     };


                             barcodeassigned = getbarcode("false");
                             barcodeassigned.then(function(result){

                                shopify.productVariant
                                .update(variant.id,({barcode: result.barcode}))
                                .then((productresult)=>console.log('To '+productresult.sku +' πήρε το barcode '+productresult.barcode),
                                (err)=> console.error(err));
                             })

``
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62657483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档