2017-12-19 5 views
0

私は初心者であり、既存のコードを扱っているので、ペイロードを後から変更することはほとんどありません。私はこのような工場内のgetコールを作っています

var providerUrl = "/" + OPENMRS_CONTEXT_PATH + "/ws/rest/v1/session"; 
\$http.get(providerUrl).then(function(response){ 
var uuid =response.data.user.uuid; 
console.log(uuid); //1st console.log 
}, function(error){ 
console.log(error); 
}); 
console.log(uuid); //2nd console.log 

は今、第二のログは実際にはおそらく非同期の性質のものを示していません。

私は工場でこのUUID値を使用する必要があります。 私は、同じ工場からのこのような$ HTTP POSTを呼び出し 、

var json = { 
      patient: patient, 
      uuid: .... //HERE GOES THE GET RESPONSE 
      encounterType: window.constantConfigObj.encounterTypeVisitNote, 
      visit: visitId, 
      encounterDatetime: date2 
    }; 

誰かがこれを行う方法を私に説明することができた場合、それは本当に参考になるを使用してペイロードを掲載していますので。 おかげ

+0

は '$ HTTPの前に' \何ですか? – Zooly

+2

あなたはPromises(これは '$ http'が返すものです)で作業する必要があります。非同期変数は使用できません。だから、あなたのロジック( 'json = ...')を '.then'または' .finally'(同じもの)内に保つようにしてください。 –

+0

@Zoolyはエスケープ文字で、Groovyのjavaサーバページでも働いています –

答えて

0
function getdata(){ 
var providerUrl = "/" + OPENMRS_CONTEXT_PATH + "/ws/rest/v1/session"; 

    return $http.get(providerUrl).then(function(response){ 
     return response.data.user.uuid; 
    }, function(error){ 
     console.log(error); 
    }); 
} 



var json = { 
      patient: patient, 
      uuid: getdata, 
      encounterType: window.constantConfigObj.encounterTypeVisitNote, 
      visit: visitId, 
      encounterDatetime: date2 
    }; 
コントローラで

factory.uuid().then((resp) => {console.log(resp)}) 
+0

関数getdata ()は 'status'と 'value'キーとそれらの値で構成される$$状態配列を返していますが、 'value'キーの値だけが必要です。スクリーンショットを添付して、ペイロードを確認してください - [link](https://drive.google.com/open?id=17U_vI_h-tyWFXS3i-QkZZ4vjN7zhRO8y) –

+0

@HardikNagdaは、$ httpの戻り値を返すだけです.Uuidが必要です?または$$状態オブジェクト – zabusa

+0

私は、$$状態オブジェクト全体ではなく、 '値'キーを返すだけです。この場合、a4ac4f​​ee- .... something(スクリーンショットに従います) –

関連する問題