Giz*_* 31 3 javascript promise
考虑这段代码:
var p = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve("OK");
}, 1000);
});
p.then().then(function(data) {
console.log(data);
});Run Code Online (Sandbox Code Playgroud)
它输出“确定”。
我不明白第一个then被调用后会发生什么。当第一个then被调用时,它会返回undefined,这又会then用一个值解析为此创建的承诺undefined。
然而,由于某种原因,当第二个then被调用时,它被传递“OK”data并随后记录它。“数据”从哪里来?
这种值的“转发”是有意的行为。Mozilla 贡献者写道:
参数
onFulfilled选修的当这个承诺实现时异步执行的函数。[...]
如果它不是函数,则在内部将其替换为恒等函数 (
(x) => x),该函数仅向前传递履行值。
| 归档时间: |
|
| 查看次数: |
74 次 |
| 最近记录: |