Я работал над интеграцией облачных вычислений на основе единой интеграции для слабого канала нашей команды. И застрял с надлежащим обратным вызовом. Похоже, вернуть значение null до завершения задачи asyc, поэтому нужна некоторая помощь в создании надлежащего асинхронного обратного вызова. Я включил скрипт и результат console.log.nodejs generator async callback - slack unity cloud build
var request = require('request');
var config = require('../../config.js');
var slackManager = require('../slack/slackmanager.js');
module.exports = {
AlertSlack: function (payload) {
var getLink = GetLink(payload);
console.log(getLink.next());
slackManager.alertSlack(getLink.next().value);
}
}
function* GetLink(payload) {
try {
var shareEndPointURL = config.unity.apibaseurl + payload.links.api_self.href + "/share";
var shareID = yield HttpRequestHandler(shareEndPointURL, 'GET');
//space to yield more httpRequest
//space to yield more httpRequest
//space to yield more httpRequest
return " some final data ";
} catch (e) {
console.log("Exception : " + e);
return e;
}
}
function HttpRequestHandler(endpointURL, httpMethod) {
var options = {
url: endpointURL,
method: httpMethod,
headers: config.unity.unityAuthHeaders
}
request(options, function (err, resp, body) {
console.log(body);
return body;
});
}
И вот лог консоли
{ value: undefined, done: false }
<-----recived call in slackmanager.js with ### some final data ###----->
{"shareid":"dfgdfgszdffzc"}
Генераторы не делают асинхронный код волшебно синхронными. Лучше забудьте о них здесь. – Bergi
Я не парень из джава, я больше склонен к C#. Я хотел бы реализовать это для игрового проекта нашей команды. Поэтому любой помощник или альтернативный метод был бы полезен. – Appslabs
Сделайте это с помощью обратных вызовов, когда вы все еще узнаете о JavaScript. – Bergi