Тук се чувствам заседнал с някакъв асинхронен код, който трябва да се изпълнява в casper.then()
обратно извикване.
casper.then(function() {
var spawn = require("child_process").spawn;
var child = spawn("somecommand", ["somearg"]);
child.stdout.on("data", function (data) {
console.log("spawnSTDOUT:", JSON.stringify(data))
});
});
casper.then(function () {
// Something that should be synchonized
});
Има ли някакъв начин да се уверите, че второто then()
ще бъде изпълнено само след като се задейства обратното извикване на данни?
Бих искал да заменя първото then()
с нещо, което няма да прехвърли контрола на второ then()
след изпълнение по подразбиране, и бих предпочел да направя това, като извикам нещо (нека го наречем „разреши“, както предлага моделът на обещанието) в обратното извикване на данни .
Примери, които използват casper.waitFor()
, също се оценяват, но бих получил нещо като предложение за „обща практика“ в този случай.