gpt4 book ai didi

javascript - 返回 Model.create(arr).exec() 在 Mongoose 中不起作用

转载 作者:行者123 更新时间:2023-11-30 09:49:10 26 4
gpt4 key购买 nike

我听说 exec “返回一个 promise ”,所以我正在使用 exec 执行异步调用。这个问题启发了我的另一个question .评论员说我的代码不起作用,因为:

You are using asynchronous code synchronously

我试图通过使用下面的代码来解决这个问题。不知道这段代码是否会使它不同步,但我听说 promises 对此有帮助。

所以我有这个,我不能创建(保存)数据,但我可以删除它。为什么我不能对 create 使用与 remove 相同的模式?

var Comp = require("./models/company.js");
var arr = [
{name : "comp1",industry : "industry1", ranking: 20},
{name : "comp2",industry : "industry2", ranking: 5},
{name : "comp3",industry : "industry3", ranking: 10}
]


Comp.find({}).exec()
.then(function(docs){
return Comp.remove({}).exec()
.then(function(){
console.log("deleted")
})
})
.then(function(){
return Comp.create(arr).exec()
.then(function(data){
console.log(data)
})
})

你能帮助我实现另一个问题中的最初目标吗?

最佳答案

then 函数不返回 promise,exec 返回 !

所以你需要做 return Comp.remove({}).exec()

Comp.find({}).exec()
.then(function(docs){
return Comp.remove({}).exec();
})
.then(function(result_of_remove){
return Comp.create(arr).exec();
})
.then(function(result_of_create){
....
})

关于javascript - 返回 Model.create(arr).exec() 在 Mongoose 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37309637/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com