Вот код:Как я могу выполнить 3 асинхронные функции в порядке?
adjust_geo = function(callback){Plasma.Hose('edge-to-sluice').Deposit({
"descrips": [
"sluice",
"prot-spec v1.0",
"request",
"zoom"
],
"ingests": {
"lat": stickie.latitude,
"lon": stickie.longitude,
"level": stickie.zoom_level
}
});
Plasma.Hose('edge-to-sluice').Deposit({
"descrips": [
"sluice",
"prot-spec v1.0",
"request",
"set-time"
],
"ingests": {
"time": stickie.start,
"rate": 2.0,
"pause": false
}
});
callback();
}
var remove_stickies = function(callback){
Plasma.Hose('edge-to-sluice').Deposit({ descrips: ['sluice', 'prot-spec v1.0', 'request', 'remove-all-fluoro'], ingests : {}
});
callback();
}
deposit_fluoros = function(){
console.log(stickie.fluoroscopes);
L = JSON.parse(stickie.fluoroscopes);
console.log(L);
for (var i = 1; i<L.length;i++){
console.log(L[i]);
Plasma.Hose('tcp://localhost/edge-to-sluice')
.Deposit({
"descrips": [
"sluice",
"prot-spec v1.0",
"request",
"new-fluoro-instance"],
"ingests":L[i]
});
};
}
}
adjust_geo(remove_stickies(deposit_fluoros()));
как вы можете видеть на последней строке, я пытаюсь выполнить три asnychronous функции в порядке. Однако прямо сейчас он жалуется, что callback() в строке 34 не определен. TypeError: undefined не является функцией. Это странно, потому что, похоже, он не заботится об одном в adjust_geo?
Обещание это путь. Избегайте обратных вызовов для асинхронных функций, это смущает вас быстро. – simonzack
Причина, по которой вы получаете ошибку на 34, состоит в том, что callback() вызывается вне функции remove_stickies. –
Каков желаемый порядок выполнения 'adjust_geo',' remove_stickies' и 'deposit_fluoros'? – Igor