Async khi lưu dữ liệu trong Mongoose
-
Chào anh em, hiện tại mình mới làm quen với Mongoose có vấn đề như sau
mình có 2 Schema Category và News
Hiện tại chỉ quan tâm 1 News có thể thuộc về nhiều Category
Nhưng khi đang thêm 1 list Category chưa xong thì nó đã nhảy xuống thêm News
=> lstCate luôn rỗng
Cho mình hỏi làm sao thêm xong tất cả Category rồi thì thêm News mới được chạy
-
Bạn có thể bỏ đoạn "luu bai viet" vào callback của "them category", mình nghĩ là vậy.
-
dính vòng for bạn ui
-
This post is deleted! -
@nmanhit dung thu Promise.all di ban
var arrPromise = [] for(.. i < category.length ..){ var newCate = new Category({ Name: category[i] }) arrPromise.push( newCate.save() ) } Promise.all(arrPromise) .then(lstCate => { var news = new News({ Name: .., Category: lstCate }) return news.save() }) .then(data => { console.log('success') }) .catch(err => { console.log('err: ', err) })
-
var async = require('async'); var category = [...], lstCate = []; var news = ... ; async.forEachOf(category, function(value, index, callback) { var newCategory = Category({Name:value}); newCategory.save(function(err, doc) { if (!err) { lstCate.push(doc.id); return callback(); } else { return callback(err); }; }); }, function(err) { if (!err) { news.save(...); } else { console.error(err); } });
-
Thanks 2 đồng chí rất nhiều, đã mò ra Promise.all , nó hơi ảo diệu chút