Я пытаюсь научиться использовать обещания, но у меня проблемы с пониманием цепочки. Я предполагаю, что с этим кодом обе обестится. Затем, когда я вызываю test.then(), он должен знать, что тест разрешил и передал данные разрешения then().JS ES6 Promise Chaining
Как только эта функция заканчивается, она переходит на следующую, затем(), повторяя тот же процесс с обещанием test2.
Однако я могу получить его только для распечатки результатов первого обещания, а не второго. Любые идеи, что здесь отсутствует?
var test = new Promise(function(resolve, reject){
resolve('done1');
});
var test2 = new Promise(function(resolve, reject){
resolve('done2');
});
test
.then(function(data) {
console.log(data);
})
.then(test2)
.then(function(data) {
console.log(data);
});
Вы не должны передавать обещание 'then', а функцию обратного вызова. – Bergi
В общем, вы собираетесь создавать функции, которые возвращают обещания, основанные на какой-то конкретной потребности или вступлении, а не только на назначение «нового» обещания переменной. Такой способ создания обещаний почти никогда не нужен, если вы не адаптируете какую-либо другую функцию асинхронного использования к обещаниям. Таким образом, более легитимный фиктивный случай может быть: var test2 = x => new Promise (function (res, rej) {resolve (x);}); потому что по крайней мере там вы моделируете функцию, которая что-то делает с данными. И что-то вроде .then (test2) может действительно работать/быть значимым. – Dtipson