Promise
是JavaScript中的一个异步编程解决方案,用于解决回调地狱问题,setTimeout
是用于延迟执行一个函数的方法。
区别在于:
-
执行顺序不同。
Promise
执行顺序为先实例化Promise对象,后执行异步操作,当异步操作完成后执行then()
方法回调函数。而setTimeout
顺序为先执行同步代码,后执行异步代码。 -
Promise
会返回一个对象,可以链式调用多个then()
方法,实现多个异步代码的顺序执行。setTimeout
返回一个定时器,仅定时延迟执行一个函数。 -
Promise
可以捕捉异步操作中的错误,通过catch()
方法进行处理。而setTimeout
要捕捉错误需要在回调函数中进行处理。
总的来说 Promise
比 setTimeout
更加灵活,可以用于复杂的异步编程,而 setTimeout
主要用于延迟执行一个简单的异步函数。