Вы можете использовать Function.prototype.bind
для создания новой функции со значением, переданным ее первому аргументу, например
P.then(doWork.bind(null, 'text'))
, и вы можете изменить doWork
на ,
function doWork(text, data) {
consoleToLog(data);
}
Теперь text
будет фактически 'text'
в doWork
, а data
будет значением, разрешенным обещанием.
Примечание: Пожалуйста, сделайте убедитесь, что вы прикрепляете обработчик отклонения к вашей цепочке обещаний.
Рабочая программа: Живая копия REPL для Babel
function doWork(text, data) {
console.log(text + data + text);
}
new Promise(function (resolve, reject) {
var a = 5;
if (a) {
setTimeout(function () {
resolve(a);
}, 3000);
} else {
reject(a);
}
})
.then(doWork.bind(null, 'text'))
.catch(console.error);