Promise
Coddy 现代 JavaScript(ES6+)中的难点 课程的第 8 课,共 9 课。
有时我们需要执行一些任务,这些任务可能需要一些时间才能完成。
这类代码无法用普通的同步方式编写,因此它们被称为异步任务,简称 async 任务。
Promise 是 Javascript 对象,可确保异步任务完成并返回结果,结果可能是成功,也可能是失败!
Promise 有三种状态:1. Pending(初始状态)2. Fulfilled(返回结果)3. Rejected(返回错误)
let myPromise = new Promise(function(resolve, reject) {
resolve("Everything is fine"); // 任务成功时会调用这个回调函数
reject("Error"); // 任务失败时会调用这个回调函数
});
// 也可以使用箭头函数
let myPromise2 = new Promise((resolve, reject) => {//code});这里的 myPromise 是一个 Promise 对象。如果 Promise fulfilled,就会调用回调 resolve;如果 Promise rejected,就会调用 reject。
myPromise.then( value => console.log(value)) // 一切正常
.catch( error => console.log(error)) // 错误 如果 Promise 成功,要访问结果值,可以使用 .then( value => // your code )。如果 Promise 被 rejected,可以使用 .catch( value => // your code )。
Promise 通常用于异步任务,例如调用后端 API(前端)、数据库请求(后端)等。
挑战
中等编写一个函数 getPromise,它返回一个 Promise:如果输入字符串是 "Coddy",则会以字符串 "Rejected" 拒绝;否则会解析为相同的字符串 。
亲手试试
function getPromise(s) {
// 在这里编写代码
}现代 JavaScript(ES6+)中的难点中的所有课
自己练习: JavaScript 在线编译器