使用promise实现一个带延时功能的链式调用

在JavaScript中,Promise 对象用于表示一个最终可能完成(也可能被拒绝)的异步操作及其结果值。你可以使用 Promise 来实现一个带延时功能的链式调用。以下是一个简单的示例:

function delay(time) {
    return new Promise(resolve => setTimeout(resolve, time));
}

function chainCall(value, time) {
    console.log(`当前值: ${value}`);
    return delay(time).then(() => value + 1);
}

// 使用示例
Promise.resolve(0)
    .then(value => chainCall(value, 1000)) // 延时1秒,输出0,返回1
    .then(value => chainCall(value, 2000)) // 延时2秒,输出1,返回2
    .then(value => chainCall(value, 3000)); // 延时3秒,输出2,返回3

在这个示例中,delay 函数返回一个 Promise,该 Promise 在指定的延时后解析。chainCall 函数接收一个值和延时时间,打印当前值,然后返回一个 Promise,该 Promise 在延时后解析为下一个值(当前值加1)。

你可以通过链式调用 .then 方法来依次执行多个 chainCall 函数,每个函数都会在前一个函数解析后执行,并且接收前一个函数解析的值作为输入。这样,你就实现了一个带延时功能的链式调用。

posted @ 2024-12-23 06:03  王铁柱6  阅读(91)  评论(0)    收藏  举报