Ich lerne den ES6-Standard, daher beginne ich mit einem sehr einfachen Beispielcode.Wie wandle ich einen Callback-Code in ES6 um?
Es gibt Callback Hells in JavaScript, also möchte ich diesmal Callbacks vermeiden. Aber ich habe ein Problem festgestellt, dass ich nicht wirklich weiß, wie man einen Callback-Stil-Code in ein Versprechen umwandelt.
Zum Beispiel, wenn ich einen solchen Code haben sieht aus wie unten
module.exports = (x, y, callback) => {
try {
if (x < 0 || y < 0) {
throw new Error('Rectangle dimensions are wrong.');
} else {
callback(null, {
perimeter() {
return (2 * (x + y));
},
area() {
return (x * y);
},
});
}
} catch (error) {
callback(error, null);
}
};
Wie soll ich wandeln es in ein Promise
in ES6? Ist das eine Art empfohlenes Verhalten, das Callbacks in Versprechen umwandelt?
Ich habe dieses Beispiel gelesen, aber ich war tatsächlich durch das Ergebnis verwirrt. Ich denke, bevor ich anfange, meine Rückrufe zu Versprechen neu zu schreiben, muss ich das zuerst verstehen.
let promise = new Promise(function(resolve, reject) {
console.log('Promise');
resolve();
});
promise.then(function() {
console.log('Resolved.');
});
console.log('Hi!');
// Promise
// Hi!
// Resolved
Mein Verständnis ist, dass Promise
läuft unmittelbar nach erstellt zu werden. Aber ich weiß nicht, warum der Code in then
Methode zuletzt ausgeführt wird.
Wenn Sie die Spezifikationen von Promise/A + [hier] (https://promisesaplus.com/) gelesen haben, beachten Sie besonders 2.2.4 und den zugehörigen Hinweis 3.1 - im Grunde sind die '.then 'Callbacks asynchron –