我已經創建了一個用Node.js寫的小型OpenWhisk動作。此操作會調用後端系統。執行動作的函數如下所示(我刪除了與此問題無關的部分代碼)。如何使用IBM Bluemix中的API Manager在OpenWhisk中調用異步操作?
/**
*
* main() will be invoked when you Run This Action.
*
*/
function main() {
var request = require("request");
var data = {
};
var options = {
method: "POST",
url: "https://whatever.it.is",
body: data,
json: true
};
request.post(options, function(error,response,body) {
var data = [];
return whisk.done({"msg":data});
});
return whisk.async();
}
然後我試圖在Bluemix API Manager中定義一個API調用。調用完成。但是,作爲結果,我收到了該活動的Id,而不是使用whisk.done()返回的內容。
有什麼想法?提前致謝。
謝謝,markusthoemmes。這解決了我的問題。我知道阻塞和非阻塞......但我不知道這是我的問題的起源。 恕我直言,儘管如此,如果您要求阻止調用,響應中的JSON對象將返回activationId和響應。 – GNF