gpt4 book ai didi

javascript - 如何将回调代码转换为 ES6 中的 promise

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:27:55 25 4
gpt4 key购买 nike

<分区>

我正在学习 ES6 标准,所以我从一个非常基本的示例代码开始。

JavaScript 中存在回调 hell ,所以这次我确实想避免使用回调。但是我遇到了一个问题,我真的不知道如何将回调样式代码转换为 promise 。

例如,如果我有这样的代码,如下所示

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

我应该如何将它转换为 ES6 中的 Promise?这是一种将回调转换为 promise 的推荐行为吗?

我读过这个例子,但实际上我对结果感到困惑。我想在我开始重写我对 promise 的回调之前,我需要先了解这一点。

let promise = new Promise(function(resolve, reject) {
console.log('Promise');
resolve();
});

promise.then(function() {
console.log('Resolved.');
});

console.log('Hi!');

// Promise
// Hi!
// Resolved

我的理解是 Promise 在创建后立即运行。但是不知道为什么then方法中的代码会最后运行。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com