ES6 Promise对象概念与用法分析
程序员文章站
2023-02-16 10:30:01
本文实例讲述了es6 promise对象概念与用法。分享给大家供大家参考,具体如下:
1.promise概念
promise 对象有三种状态:
① fulfilled...
本文实例讲述了es6 promise对象概念与用法。分享给大家供大家参考,具体如下:
1.promise概念
promise 对象有三种状态:
① fulfilled 可以理解为成功的状态
② rejected 可以理解为失败的状态
③ pending 既不是 fulfilld 也不是 rejected 的状态,可以理解为 promise 对象实例创建时候的初始状态
2.三个重要方法
在 promise 对象当中有三个重要方法————resolve, reject和then。
resolve 方法可以使 promise 对象的状态改变成成功,同时传递一个参数用于后续成功后的操作,在这个例子当中就是 hello world!字符串。
reject 方法则是将 promise 对象的状态改变为失败,同时将错误的信息传递到后续错误处理的操作。
function printhello (ready) { return new promise(function (resolve, reject) { if (ready) { resolve("hello"); } else { reject("good bye!"); } }); } function printworld () { alert("world"); } function printexclamation () { alert("!"); } printhello(true) .then(function(message){ alert(message); }) .then(printworld) .then(printexclamation); //分别弹出 hello world !三个弹窗
上述例子通过链式调用的方式,按顺序打印出了相应的内容。then 可以使用链式调用的写法原因在于,每一次执行该方法时总是会返回一个 promise 对象。另外,在 then onfulfilled 的函数当中的返回值,可以作为后续操作的参数,因此上面的例子也可以写成:
function printhello (ready) { return new promise(function (resolve, reject) { if (ready) { resolve("hello"); } else { reject("good bye!"); } }); } printhello(true).then(function (message) { return message; }).then(function (message) { return message + ' world'; }).then(function (message) { return message + '!'; }).then(function (message) { alert(message); }); //一个弹窗 hello world !
希望本文所述对大家ecmascript程序设计有所帮助。