我正在 BlueMix OpenWHisk 中开发一个模块,在 Cloudant 提要更改后,我需要调用一个 url,它会在另一个平台上更新一些细节。我正在使用 nodejs 运行时。
请求是让我的操作等待 POST 请求的结果到上面提到的 url。如果 POST 成功,那么我应该执行下一个事件序列。
问题:
如何在执行下一个序列之前等待 POST 请求的结果?
是否可以等待并返回 POST 请求的结果。
发布我的代码
/**
*
* main() will be invoked when you Run This Action
*
* @param OpenWhisk actions accept a single parameter, which must be a JSON object.
*
* @return The output of this action, which must be a JSON object.
*
*/
const util = require('util');
var http = require('http');
function main(params) {
// Updated the status of the User
params.status ="updated1";
var options = {
host: "myhost.mybluemix.net",
path: "/addtoimc",
method: "POST",
headers: {
"Content-Type": "text/plain"
}
};
return {message : addtoIMC(options)};
}
function createRequest(data, options)
{
return http.request(options, function (res) {
var responseString = "";
res.on("data", function (data) {
responseString += data;
// save all the data from response
});
res.on("end", function () {
console.log("AAA" + responseString);
});
});
}
function addtoIMC(options)
{
return new Promise(function(resolve, reject) {
var req = createRequest("Hello",options);
var reqBody = "post_data";
req.write(reqBody);
req.end();
});
}