Насколько я могу судить, прочитав спецификацию ES6 Promise и стандартную спецификацию обещания , не оговорка, запрещающая реализации от обработки этого случая, - однако ее не реализовано в следующие библиотеки:
Я предполагаю, что причина, по которой они опускают несколько аргументов arg, заключается в том, чтобы сделать порядок изменения более кратким (т. е. поскольку вы можете только вернуть одно значение в функции, это сделает поток управления менее интуитивным) Пример:
new Promise(function(resolve, reject) {
return resolve(5, 4);
})
.then(function(x,y) {
console.log(y);
return x; //we can only return 1 value here so the next then will only have 1 argument
})
.then(function(x,y) {
console.log(y);
});