2014-09-05 3 views
0

저는 노드에 익숙하지 않아 호출자 메소드에 객체 인스턴스를 반환 할 수있는 목적을 달성하기가 어렵습니다.필요에 따라 nodejs에 객체 인스턴스 전달하기

참고 : 객체 인스턴스가 비 차단 콜백에서 생성되고이 객체가 호출 된 주 모듈로이 객체를 전달하려는 경우 동일한 파일 (파일 b)에서이를 수행 할 수 있습니다. .js)하지만 require를 사용하여 주 파일 (a.js 파일)에는 없습니다. 파일

예제 코드는 a.js에서

var b = require('b.js'); 
var myobj = b.createObject(); 
//call some method of myobj 

제안하십시오 전문가, 감사합니다, 마니 반살

답변

2

이 새로운 사람에게 일반적인 문제를

var object1 = require('object1.js') 
    function createobject(){ 
    object1.someFunction(err,function(myobj){ 
     //retrun myobj to the caller function; 
     return myobj; 
    }); 
    } 
module.exports = createobject; 

을 b.js . 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 
}); 
+0

한 덕분에,이, 그래서 그냥 확인하고 싶었 매우 빨랐다이 이상 다른 방법이, 또는이다 그럼에도 불구하고 비동기로부터 뭔가를 반환하는 유일한 옵션입니다. 그럼에도 불구하고 많이 감사합니다 :) –

+0

예, 이것이 유일한 방법입니다. [generators] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/yield) 또는 [promises] (https://developer.mozilla.org/en- US/docs/Web/JavaScript/Reference/Global_Objects/Promise) –