rallrall при условии, что правильный ответ в своем комментарии: вы не можете
Решение для меня состояло в том, чтобы перепроектировать мой код, чтобы вернуть обещания, а затем функция приема должна оценивать результат по линиям:
function a(){
var option = null;
return mustHaveOption ? store.find("option", 1) : false;
}
}
function b(){
res = a();
if (!res){
res.then(function(option){
// see option here
});
}
}
Другим ключевым решением для меня было использование hash of promises. Один создает массив из всех обещаний, которые должны быть решить перед выполнением следующего кода:
Em.RSVP.Promise.all(arrayOfPromises).then(function(results){
//code that must be executed only after all of the promises in arrayOfPromises is resolved
});
Это Наталья принимает меня некоторое время, чтобы обернуть мою голову вокруг этого асинхронного способа программирования - но как только я сделал это работает довольно хорошо.
большой вопрос. Попытка разобраться в этом. Довольно раздражает. Кажется, обещания отлично подходят для «взглядов», но довольно дрянных для программирования OO. Вы нашли решение? – andy