Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 蓝筋承诺函数未转换为承诺_Javascript_Node.js_Mongoose_Bluebird - Fatal编程技术网

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>。这也意味着你不需要承诺任何事情,因为猫鼬支持承诺。它被转换成承诺,但它不能正常工作。。我尝试使用回调函数,它正在工作,并且在那里它被转换为承诺,但它工作不好。。我尝试回叫功能,它在那里工作