hin*_*ner 2 javascript asynchronous promise reactjs
我有 getAction1、2 和 3 函数,它们在后端 API 服务中执行一些操作。
我需要一个按顺序执行 getAction1、2 和 3 的按钮。
在这个情况下,
这样做是不是更好?(选项1)
apiconsumer.js
export const getAction1 = (param1) => new Promise(
function (resolve, reject) {
// DO SOMETHING AND RETURN 'resolve' or 'reject'
});
export const getAction2 = (param2) => new Promise(
function (resolve, reject) {
// DO SOMETHING AND RETURN 'resolve' or 'reject'
});
export const getAction3 = (param3) => new Promise(
function (resolve, reject) {
// DO SOMETHING AND RETURN 'resolve' or 'reject'
});
Run Code Online (Sandbox Code Playgroud)
按钮.js
const handleOnClick = async (event) => {
const response1 = await getAction1(param1);
const response2 = await getAction2(param2);
const response3 = await getAction3(param3);
// DO SOMETHING...
};
Run Code Online (Sandbox Code Playgroud)
或者这样做?(选项2)
apiconsumer.js
export const getAction1 = (param1) => new Promise(
function (resolve, reject) {
// DO SOMETHING AND RETURN 'resolve' or 'reject'
});
export const getAction2 = (param2) => new Promise(
function (resolve, reject) {
// DO SOMETHING AND RETURN 'resolve' or 'reject'
});
export const getAction3 = (param3) => new Promise(
function (resolve, reject) {
// DO SOMETHING AND RETURN 'resolve' or 'reject'
});
export const performActions = async (uData) => {
const response1 = await getAction1(uData.param1);
const response2 = await getAction2(uData.param2);
const response3 = await getAction3(uData.param3);
};
Run Code Online (Sandbox Code Playgroud)
按钮.js
const handleOnClick = async (event) => {
const response1 = await performActions(uData);
// DO SOMETHING...
};
Run Code Online (Sandbox Code Playgroud)
基本上,OPTION.2 创建嵌套的 async/await 函数。
我不确定像上面的 OPTION.2 那样嵌套 async/await 是否是一个好主意。如果这些都不好,你有什么建议?
如果结果不互相依赖的话。
await Promise.all([
getAction1(uData.param1),
getAction2(uData.param2);,
getAction3(uData.param3);
])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
399 次 |
| 最近记录: |