我是节点的新手并努力实现一个目标,我可以将对象实例返回给调用者方法。
请注意:对象实例是在非阻塞回调中创建的,我想将此对象传递回调用此对象的主模块,我能够在同一个文件中实现此目的(文件b。 js)但不在主文件(文件a.js)中使用require。
文件b.js中的示例代码
var object1 = require('object1.js')
function createobject(){
object1.someFunction(err,function(myobj){
//retrun myobj to the caller function;
return myobj;
});
}
module.exports = createobject;
在a.js
var b = require('b.js');
var myobj = b.createObject();
//call some method of myobj
请建议专家, 谢谢, Manish Bansal
答案 0 :(得分:2)
这是新人的典型问题。您试图从async
函数返回一些内容 - 这不起作用。改为使用回调或承诺:
file b.js
function createobject(next){
object1.someFunction(err,function(myobj){
//retrun myobj to the caller function;
next(myobj);
});
}
file a.js
b.createObject(function (myobj) {
// call some method of myobj
});