У меня следующая ситуация:
У меня есть код, работающий на локальном сервере (требуется только поддержка Chrome). Этот код в настоящее время выполняется асинхронно, как и из учебника. Однако для моего варианта использования было бы намного проще синхронно запускать код.
function creosonConnect() {
// JSON request
var reqObj = {
"command": "connection",
"function": "connect"
};
// perform the request
creosonRequest(reqObj)
.then(function(respObj) {
console.log('got this back: '+JSON.stringify(respObj));
console.log('SESSIONID ===> '+respObj.sessionId);
creosonSessionId = respObj.sessionId;
});
}
function creosonRequest (dataObj) {
return new Promise(function(resolve, reject) {
creosonServerSettingsObj.data = JSON.stringify(dataObj);
$.ajax(
creosonServerSettingsObj
)
.success(function (data) {
console.log('got to the success : '+JSON.stringify(data))
console.log('got this data type back: '+typeof data);
if (data.status.error) {
if (data.status.hasOwnProperty('message')) {
reject(data.status.message);
} else {
console.log(JSON.stringify(data));
reject('creoson Operation failed! - check console for details');
}
} else {
resolve(data);
}
})
.error( function (e) {
console.log('got an error : '+JSON.stringify(e));
reject('creoson Operation failed! - check console for details');
});
})
}
Моя проблема в том, что у меня нулевой опыт работы с серверами / веб-разработкой в целом. Если я попытаюсь связать несколько функций, которые зависят от завершения первой (creosonConnect), все это рухнет вокруг меня. В идеале я хотел бы сделать что-то вроде этого:
function main(){
creosonConnect();
creoOpenModel();
...
}
function creoOpenModel (partName) {
// JSON request
var reqObj = {
"sessionId": creosonSessionId,
"command": "file",
"function": "open",
"data": {
"file": null,
"display": true,
"activate": true
}
};
// get the input value & set to the reqObj
var fileName = partName
reqObj.data.file = fileName;
// perform the request
creosonRequest(reqObj)
.then(function(respObj) {
console.log('got this back: ' + JSON.stringify(respObj));
});
}
Любая помощь, как преобразовать это в синхронный код, очень ценится. Также некоторым объяснением, что именно происходит в функции creosonRequest, было бы fantasti c.
Я знаю, что это очень много вопросов, но я действительно в недоумении. Большое спасибо заранее !!