new Promise((resolve, reject) => {
setTimeout(function() {
console.log(1)
resolve()
}, 200)
}).then(new Promise((resolve, reject) => {
setTimeout(function() {
console.log(2)
resolve()
}, 0)
}))
为什么这个输出是 2 1,而不是 1 2? promise 应该按顺序做事?为什么会这样
最佳答案
then
的第一个参数是回调函数。引用 - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then .
new Promise((resolve, reject) => {
setTimeout(function () {
console.log(1)
resolve()
}, 200)
}).then(() => {
return new Promise((resolve, reject) => {
setTimeout(function () {
console.log(2);
resolve();
}, 0)});
});
关于javascript - 为什么 promise 同时有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59171220/