gpt4 book ai didi

javascript - 在 Promise 中 resolved 或 rejected 之后你应该返回一些东西吗?

转载 作者:行者123 更新时间:2023-11-30 06:56:12 27 4
gpt4 key购买 nike

<分区>

假设我有一个像下面这样的 Promise:

new Promise((resolve, reject) => {

// Some random conditional
if (today === 'Friday') {
console.log("I'm resolving this thing here");
resolve('taco');
// Should I have a return true or false here?
}

console.log("Code made it past the first resolve");

// Do some other code here, like connect to a database or API or something.
connectToDatabase(function(result){
// result was 'hamburger'
resolve(result);
});

}).then((value) => {
console.log(value);
});

在这个例子中,我得到以下输出:

I'm resolving this thing here
Code made it past the first resolve
taco

因此,在我执行 resolve 之后,Promise 代码继续执行。在我上面的例子中,我不必要地连接到一些数据库或端点或其他东西。显然send resolve被忽略了,这样就好了。但是,从服务成本的 Angular 来看,连接到数据库和 API 是昂贵的,尤其是当您每次发出 AWS 服务之类的请求时都要花钱。

所以我的问题是,我应该放入 return true; 还是在第一个 resolve 之后?

reject 类似,我应该在 reject 之后放入 return false 还是 (true??)?

new Promise((resolve, reject) => {
someAsyncFunction((err, result) => {
if (err) {
reject(err);
// Should I have a return true or false here or something?
}

// Do something here, like connect to a database or fetch a value from some API endpoint or something.

resolve(result);
});
});

如果我不想在 reject 之后执行代码,我应该返回,对吗?

当我浏览各种 ES6 文档时,我找不到他们清楚说明这一点的任何地方......很多 Promise 示例通常都非常简化。

如果我确实要返回,我应该返回什么? 错误?或 return resolve('taco');?

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