Hyd*_*erA 3 javascript promise
码:
var x = new Promise((resolve, reject) => {
setTimeout( function() {
console.log( 'x done' );
resolve()
}, 1000 );
});
Promise.resolve().then(x).then((resolve, reject) => {
console.log( 'all done' );
});
Run Code Online (Sandbox Code Playgroud)
输出:
all done
x done
Run Code Online (Sandbox Code Playgroud)
预期产量:
x done
all done
Run Code Online (Sandbox Code Playgroud)
x在调用下一个then回调之前,为什么承诺没有等待解决?
JSFiddle:https://jsfiddle.net/puhbqtu0/1/
因此,当您想要在一系列中运行promises时,您应该转换x为函数并将其调用then:
function x() {
return new Promise(resolve => {
setTimeout(() => {
console.log('x done');
resolve()
}, 1000);
});
});
Promise.resolve()
.then(x)
.then(() => console.log('all done'));
Run Code Online (Sandbox Code Playgroud)
或最简单的变体:
x().then(() => console.log('all done'));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6801 次 |
| 最近记录: |