我想更深入地了解Promises如何在内部工作.因此我有一些示例代码:
var p1 = new Promise(
function(resolve, reject) {
window.setTimeout(
function() {
resolve('res called')
}, 2000);
});
var p2 = new Promise(
function(resolve, reject) {
window.setTimeout(
function() {
resolve('res called')
}, 2000);
});
function chainPromises() {
return p1.then(function(val) {
console.log("p1");
return p2.then(function(val) {
console.log("p2");
return val;
});
});
}
chainPromises().then(function(val) {
console.log(val);
});
Run Code Online (Sandbox Code Playgroud)
这是执行此代码的链接.
正如您所预测的那样,首先解决p1,之后是p2,然后最终打印出resolv值.
但API参考声明如下:
var p1 = new Promise(
function(resolve, reject) {
window.setTimeout(
function() {
resolve('res called')
}, 2000);
});
var p2 = new Promise(
function(resolve, …Run Code Online (Sandbox Code Playgroud)