gpt4 book ai didi

javascript - 使用 await async 获取数据而不使用 try catch

转载 作者:搜寻专家 更新时间:2023-10-30 21:15:47 25 4
gpt4 key购买 nike

我正在尝试使用不带 try-catch 的 await-async:

const getUsers = async (reject, time) => (
new Promise((resolve, reject) => {
setTimeout(() => {
if (reject) {
reject(....)
}
resolve(.....);
}, time);
})
);

module.exports = {
getUsers ,
};

对于 try-catch block ,它看起来像这样:

const { getUsers } = require('./users');

const users = async () => {
try {
const value = await getUsers(1000, false);
.....
} catch (error) {
.....
}
}

users();

如何在不使用 try-catch block 的情况下编写相同的代码?

最佳答案

使用 promise 函数 then-catch 使过程更简单我使用这个 utils:

// utils.js

const utils = promise => (
promise
.then(data => ({ data, error: null }))
.catch(error => ({ error, data: null }))
);

module.exports = utils;

然后

const { getUsers } = require('./api');
const utils = require('./utils');

const users = async () => {
const { error, data } = await utils(getUsers(2000, false));
if (!error) {
console.info(data);
return;
}
console.error(error);
}

users();

在不使用 try-catch block 的情况下,我得到了相同的输出,这样可以更好地理解代码。

关于javascript - 使用 await async 获取数据而不使用 try catch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50210289/

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