Promise
Promise 是一个对象,表示异步操作的完成或者失败及其输出值。
Promise 可以处于三种状态:pending,表示初始状态,在操作成功完成时完成,以及拒绝,表示操作失败。
异步/等待
await 操作符使异步函数的执行暂停,直到 Promise 被解决,并在 Promise 完成后恢复执行。
await 的值是已完成的 Promise 的值。
在拒绝 Promise 的情况下, await 会抛出被拒绝的值。
如果 await 后面的表达式的值不是一个 Promise,它就会变成一个已解决的 Promise。
编程语言有让程序停止几秒或者几毫秒的方法。
例如,如果我们使用 PHP 语言,我们应该调用 sleep() 函数使程序暂停执行 3 秒。
尽管 JavaScript 没有sleep函数,但由于 ES2015 中引入了 Promise 和 async/await,我们最终可能会导致该函数进入睡眠状态。
JavaScript 不会像其他语言那样暂停整个程序的执行。
它只会使函数休眠。
const sleep = (ms) => { return new Promise(resolve => setTimeout(resolve, ms)) }
接下来,我们可以使用 then 回调:
sleep(1000).then(() => { //some things })
或者在异步函数中使用它:
<!DOCTYPE html> <html> <head> <title>文档的标题</title> </head> <body> <script> function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } const doSomething = async() => { console.log('Wait for 2 seconds!'); await sleep(2000) console.log('After 2 seconds!'); } doSomething(); </script> </body> </html>
await 操作符只能在 async 函数中使用,并且只能暂停当前的 async 函数。
日期:2020-06-02 22:16:27 来源:oir作者:oir