使用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 函数,每个函数都会在前一个函数解析后执行,并且接收前一个函数解析的值作为输入。这样,你就实现了一个带延时功能的链式调用。
浙公网安备 33010602011771号