1
我是Datapower網關腳本(和Javascript)的新手,以下情況完全讓我感到困惑。看:在Datapower(GatewayScript)中使用Javascript的範圍
var inputJson = "default";
//Reading json from input and covert it to string
session.input.readAsJSON(function (error, json) {
if (error) {
session.reject('Input is not a valid JSON document');
return;
}
inputJson = JSON.stringify(json);
console.debug("Inside: ", inputJson);
});
console.debug("Outside ", inputJson);
在DataPower的控制檯將以下內容:
「內:{長JSON字符串}」
「外:默認」
它完全打破了我的心靈,扭曲我的瞭解變量範圍。是javascript,datapower腳本實現的功能還是什麼?
UPD。而另一位腦裂的事情:
function getFile(options){
var file="default";
urlopen.open(options,function(error, response){
if(error){
console.error("Unable to find file: "+JSON.stringify(error));
}else{
if(response.statusCode==200){
response.readAsBuffer(function(error, responseData){
if(error){
console.error("Unable to open file: "+JSON.stringify(error));
}else{
console.error("Before: ", file);
file=responseData.toString('ascii');
console.error("After: ", file);
}
});
}else{
console.error("Unable to open file: "+response.statusCode);
}
}
});
return file;
}
console.error("Func result: ", getFile(openSchemaOptions));
控制檯結果:
:(!原文如此) 「FUNC結果默認」
「之前:默認」
「 After:--json string--「
如何在函數執行前打印函數結果?
謝謝你的解釋,但我怎麼可以通過該JSON字符串已經擺在** ** inputJson可變 –
通過移動它內部的控制檯確保像你一樣回調。或者如果你真的想保持它分開,試着找到關於「延遲」或「異步」的javaScript的信息。在第5步中,您可以調用自己的函數,將json作爲參數傳遞,並且您又可以重新開始。 –
謝謝,這是非常有益的! –