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