现在我们用 Promise 来实现同样的功能:
实例
newPromise(function(resolve, reject){ setTimeout(function(){ console.log("First"); resolve(); }, 1000);}).then(function(){ returnnewPromise(function(resolve, reject){ setTimeout(function(){ console.log("Second"); resolve(); }, 4000); });}).then(function(){ setTimeout(function(){ console.log("Third"); }, 3000);});
这段代码较长,所以还不需要完全理解它,我想引起注意的是 Promise 将嵌套格式的代码变成了顺序格式的代码。
Promise 的使用
下面我们通过剖析这段 Promise "计时器" 代码来讲述 Promise 的使用:
Promise 构造函数只有一个参数,是一个函数,这个函数在构造之后会直接被异步运行,所以我们称之为起始函数。起始函数包含两个参数 resolve 和 reject。
当 Promise 被构造时,起始函数会被异步执行:
实例
newPromise(function(resolve, reject){ console.log("Run");});
这段程序会直接输出 Run。