Are Promise.resolve und neue Promise (Entschlossenheit) austauschbar

Meiner Ansicht nachPromise.resolve undnew, Promise(resolve) sind austauschbar.

Bedenken Sie

EIN

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);
});

Beide drucke "HI" wie erwartet.

So denke ich, wenn ich nichts "ablehnen" muss. Ich kann nur @ schreibRSVP.resolve(); Der Einfachheit halber.

Aber betrachten Sie dieses Beispiel:

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);
});

Wie kann ich @ verwendRSVP.resolve(); ersetzen? Ich habe zum Beispiel versucht:

new RSVP.Promise(function (resolve, reject) {
    resolve();
}).then(function () {
    return setTimeout(function () {
        return new RSVP.resolve("HI");
    }, 3000);
}).then(function (result) {
    console.log(result);
});

Dies druckt etwas anderes als "HI". Ist es also möglich, RSVP.resolve () zu verwenden? Hier? Sind diese beiden austauschbar?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage