Promise的用法,简单说就是一句话:使用then方法添加回调函数。
但是,不同的写法有一些细微的差别,请看下面四种写法,它们的差别在哪里?
// 写法一
doSomething().then(function () {
return doSomethingElse();
});
// 写法二
doSomething().then(function () {
doSomethingElse();
});
// 写法三
doSomething().then(doSomethingElse());
// 写法四
doSomething().then(doSomethingElse);
为了便于理解,这四种写法都再用then方法接一个回调函数finalHandler。
写法一的finalHandler回调函数的参数,是doSomethingElse函数的运行结果。
doSomething().then(function () {
return doSomethingElse();
}).then(finalHandler);
写法二的finalHandler回调函数的参数是undefined。
doSomething().then(function () {
doSomethingElse();
return;
}).then(finalHandler);
写法三的finalHandler回调函数的参数,是doSomethingElse函数返回的回调函数的运行结果。
doSomething().then(doSomethingElse())
.then(finalHandler);
写法四与写法一只有一个差别,那就是doSomethingElse会接收到doSomething()返回的结果。
doSomething().then(doSomethingElse)
.then(finalHandler);