Mam problem z obietnicami jQuery 1.9.1, w których potencjalnie potrzebuję logiki warunkowej, która zwróci inną odroczoną i nie jestem pewien jak sobie z nią poradzić. To była moja najlepsza próba, ale ponieważ komentarze wskazują poniżej, kiedy trafiłem do innej gałęzi, wciąż trafiłem na drugą funkcję .then(), w której mam nadzieję, że mogę wrócić do użytkownika. Jakieś wzorce radzenia sobie z takim scenariuszem?Obsługa oddziałów z obietnicami
storage.provision(c)
.then(function(rc){
if(rc === 0){
storage.write(c);
}else{
return options.onSuccess(rc); //how i got back to the users callbacks/promise, but this
//takes me to the .then below
}
})
//storage.write returns a promise as well, do I do another .then
// like this?
.then(function(rc){
//I was hoping this would catch, the storage.write() case, and it does, but it also catches
//the retun options.onSuccess(rc) in the else case.
options.onSuccess(rc);
})
.fail(function(e){
//handle error using .reject()
});
Ten wpis może pomóc: http://stackoverflow.com/questions/12149993/attempting-to-break-jquery-promise-chain-with-then-fail-and-reject – mattytommo
[Ten post] (http: //net.tutsplus.com/tutorials/javascript-ajax/wrangle-async-tasks-with-jquery-promises/) pomoże ci lepiej zrozumieć obietnice. Zasadniczo, jeśli chcesz używać warunków warunkowych, powinieneś oszczędzać obietnicę jako zmienną i wykonywać '' ów' 'sukces' lub' fail' w swoich warunkach, wydaje się, że robisz to na odwrót. – acconrad