Javascript 蓝筋承诺函数未转换为承诺
他们有没有其他方式来改变承诺Javascript 蓝筋承诺函数未转换为承诺,javascript,node.js,mongoose,bluebird,Javascript,Node.js,Mongoose,Bluebird,他们有没有其他方式来改变承诺 var Promise = require("bluebird"); let findOneOrCreate = require('mongoose-find-one-or-create'); findOneOrCreate = Promise.promisify(findOneOrCreate); // not converted to promise 我以前在中使用过。然后()- 它给出了一个错误:- 无法读取未定义的属性“then”首先,根据 node函数应
var Promise = require("bluebird");
let findOneOrCreate = require('mongoose-find-one-or-create');
findOneOrCreate = Promise.promisify(findOneOrCreate); // not converted to promise
我以前在中使用过。然后()-
它给出了一个错误:-
无法读取未定义的属性“then”首先,根据
node函数应符合node.js接受
回调作为最后一个参数
仅接受schema
作为参数,并使用findOneOrCreate
函数扩展此架构。因此,require('mongoose-find-one-or-create')
似乎无法得到保证。您可以尝试承诺findoneor或创建扩展架构:
var findOneOrCreate = require('mongoose-find-one-or-create');
var PersonSchema = mongoose.Schema({...});
PersonSchema.plugin(findOneOrCreate);
var Person = mongoose.model('Person', PersonSchema);
var findOneOrCreatePromise = Promise.promisify(Person.findOneOrCreate);
还要记住,promisify.promisify()
返回一个函数,因此在调用之前需要调用它,然后调用:
findOneOrCreatePromise().then(...)
不只是
findOneOrCreatePromise.then(...)
首先,根据,
node函数应符合node.js接受
回调作为最后一个参数
仅接受schema
作为参数,并使用findOneOrCreate
函数扩展此架构。因此,require('mongoose-find-one-or-create')
似乎无法得到保证。您可以尝试承诺findoneor或创建扩展架构:
var findOneOrCreate = require('mongoose-find-one-or-create');
var PersonSchema = mongoose.Schema({...});
PersonSchema.plugin(findOneOrCreate);
var Person = mongoose.model('Person', PersonSchema);
var findOneOrCreatePromise = Promise.promisify(Person.findOneOrCreate);
还要记住,promisify.promisify()
返回一个函数,因此在调用之前需要调用它,然后调用:
findOneOrCreatePromise().then(...)
不只是
findOneOrCreatePromise.then(...)
它给出了一个错误
-什么是错误?你发布的代码?(不太可能,您不使用。那么
)-您确定知道自己在使用承诺做什么吗?promisify
不返回承诺-它返回一个函数,调用该函数时返回一个承诺。你认为它在哪里?那个代码>猫鼬找到一个或创建< /Cult>模块是有缺陷的(种族条件),你应该考虑使用内置的结合<代码> UpSert:Trime< /Cord>。这也意味着你不必做出任何承诺,因为Mongoose支持承诺。它给出了一个错误
-什么是承诺?你发布的代码?(不太可能,您不使用。那么
)-您确定知道自己在使用承诺做什么吗?promisify
不返回承诺-它返回一个函数,调用该函数时返回一个承诺。你认为它在哪里?那个代码>猫鼬找到一个或创建< /Cult>模块是有缺陷的(种族条件),你应该考虑使用内置的结合<代码> UpSert:Trime< /Cord>。这也意味着你不需要承诺任何事情,因为猫鼬支持承诺。它被转换成承诺,但它不能正常工作。。我尝试使用回调函数,它正在工作,并且在那里它被转换为承诺,但它工作不好。。我尝试回叫功能,它在那里工作