Menu
CoddyTech

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(前端)、数据库请求(后端)等。

challenge icon

挑战

中等

编写一个函数 getPromise,它返回一个 Promise:如果输入字符串是 "Coddy",则会以字符串 "Rejected" 拒绝;否则会解析为相同的字符串 。

亲手试试

function getPromise(s) {
  // 在这里编写代码
}

现代 JavaScript(ES6+)中的难点中的所有课

自己练习: JavaScript 在线编译器