трябва ли да създам отложен вътре myFunction
?
(Това е терминологията на jQuery, общият случай би бил „Трябва ли да създам обещание в моята функция?“)
Само ако вашата функция все още няма обещание, тя може да се върне; често го прави, ако изчаква да завърши каквато и да е асинхронна операция (ajax, някакъв друг базиран на обещание API и т.н.).
if(!options) {
throw 'foo'; // But I want the API for myFunction to be promise-based...
}
Ако питате дали трябва да създадете обещание за отхвърляне за грешката, че options
не е предоставена, не, не бих очаквал това от API. Има два аспекта на API на асинхронна операция:
Посвещение
Завършване
В горното, липсата на предоставяне на options
е грешка по време на инициирането на заявката. Бих очаквал вградено изключение, а не обратно извикване на асинхронна грешка.
Грешки при обработката на заявката (HTTP грешки и т.н.) биха били грешки, които бих очаквал чрез механизма за отхвърляне на обещанието.
person
T.J. Crowder
schedule
27.08.2015