В моем случае обещание должно содержать ровно один аргумент.
Обещание будет принимать один аргумент. Этим аргументом будет функция, которую вы хотите запустить. Вот как определяется Promise
. Это не что-то под вашим контролем.
Функция, которую вы передаете обещанию, получит два аргумента. Они передаются им при вызове, что делается библиотекой Promise (которая не является кодом, который вы написали, и следует спецификации для Promises, так что это не что-то под вашим контролем). Традиционно называть их resolve
и reject
, но вы можете называть их как хотите. Передаваемая вами функция должна вызывать resolve(any_data)
в случае успеха и reject(any_data)
в случае сбоя. Если вы не собираетесь вызывать reject
, то вам не нужно указывать это в списке аргументов, хотя второй аргумент будет передан функции.
Вы можете создать функцию, которая возвращает обещание (например, createMarkup
в вашем примере), которое принимает любые понравившиеся аргументы и делает их доступными для функции, которую вы передаете Promise
через замыкания.