用promise定义方法时如何避免 自执行/周期影响 多次执行问题:将promise作为方法的回调返回

如果你在Promise内部定义了异步操作,并希望避免Promise在创建时自动执行,你可以将这些异步操作封装在一个函数内,并在需要时调用该函数。

这样可以确保在适当的时机执行异步操作,而不是在Promise对象创建时周期更新时(会重新定义变量)立即执行

 

以下是一个示例,演示了如何在Promise内部定义异步操作并避免定义时执行:

const addHydrogen = () => {
    return new Promise((resolve, reject) => {
        // 异步操作放在这里
        setTimeout(() => {
            resolve("Hydrogen added successfully");
        }, 1000);
    });
};

// 调用addHydrogen函数创建Promise对象
const hydrogenPromise = addHydrogen();

// 在需要时调用Promise对象
hydrogenPromise.then(result => {
    console.log(result); // 输出:Hydrogen added successfully
}).catch(error => {
    console.error(error);
});

在这个示例中,addHydrogen函数定义了异步操作,但是在Promise对象的创建时并没有执行任何操作。只有当你调用addHydrogen()函数时,Promise对象才会被创建并返回,然后你可以像正常的Promise一样使用它。

通过这种方式,你可以控制异步操作何时被执行,而不是在Promise对象创建/重定义时立即执行。

posted @ 2024-03-07 17:48  SimoonJia  阅读(9)  评论(0编辑  收藏  举报