Разница в цепочки и обработки ошибок и регистрации ошибок:
Q(...)
.then(...)
.finally();
Здесь, если then
броска, finally
все равно будет работать, но никакой ошибки не зарегистрирует. В Q finally
выполняется независимо от .then
успешной или нет. Это похоже на ключевое слово finally
в JS try/catch/finally
. В этом случае также можно связать дополнительные цепи then
.
Q(..)
.then()
.done();
Здесь done
указывает на то, что обещание цепи закончилась, вы не можете цепи к ней больше. Если вы передадите его только обработчику onFulfilled, он не будет запущен, если будет сброшен then
, и он будет регистрировать ошибки, если он заканчивается исключением.
Какие аргументы вы передаете '.then',' .finally' и '.done'? – Bergi
Я прочитал документы и не нашел ответа настолько очевидным. –
обещание теперь входит в спецификацию JS, часть стандарта ECMAScript 2015 (ES6). – Pieter