Являются ли Promise.resolve и новые Promise (решимость) взаимозаменяемыми
Я думаюPromise.resolve
а такжеnew, Promise(resolve)
взаимозаменяемы.
Учти это:
A.
new RSVP.Promise(function (resolve, reject) {
resolve();
}).then(function () {
return new RSVP.Promise(function (resolve) {
resolve("HI")
});
}).then(function (result) {
console.log(result);
});
B.
new RSVP.Promise(function (resolve, reject) {
resolve();
}).then(function () {
return RSVP.resolve("HI");
}).then(function (result) {
console.log(result);
});
Оба печатают «Привет», как я и ожидал.
Поэтому я думаю, что если мне не нужно что-либо «отклонять». Я могу просто написатьRSVP.resolve();
для простоты.
Но рассмотрим этот пример:
new RSVP.Promise(function (resolve, reject) {
resolve();
}).then(function () {
return new RSVP.Promise(function (resolve, reject) {
setTimeout(function () {
resolve("HI")
}, 3000);
});
}).then(function (result) {
console.log(result);
});
Как я могу использоватьRSVP.resolve();
заменить? Я пробовал например:
new RSVP.Promise(function (resolve, reject) {
resolve();
}).then(function () {
return setTimeout(function () {
return new RSVP.resolve("HI");
}, 3000);
}).then(function (result) {
console.log(result);
});
Это печатает что-то еще вместо "HI". Так можно ли использовать RSVP.resolve (); Вот? Эти два взаимозаменяемы?