Javascript 如何在JS中嵌套承诺,并在不同的时间解决它们?

Javascript 如何在JS中嵌套承诺,并在不同的时间解决它们?,javascript,asynchronous,promise,settimeout,es6-promise,Javascript,Asynchronous,Promise,Settimeout,Es6 Promise,我想,通过运行数字1、2和4下面的代码,屏幕上会在一秒钟后出现另一个数字。但它们同时出现 由于我的嵌套解析在setTimeout()中,它们不应该在上一个解析后一秒钟解析吗 var test = document.getElementById("test"); new Promise(function(resolve, reject) { setTimeout(() => resolve(1), 1000); }).then(result => { te

我想,通过运行数字1、2和4下面的代码,屏幕上会在一秒钟后出现另一个数字。但它们同时出现

由于我的嵌套解析在
setTimeout()中,它们不应该在上一个解析后一秒钟解析吗

var test = document.getElementById("test");

new Promise(function(resolve, reject) {
  setTimeout(() => resolve(1), 1000);
}).then(result => {
  test.innerHTML += result + "<br>";
  return new Promise(function(resolve, reject) {
    setTimeout(() => resolve(result * 2, 2000));
  });
}).then(result => {
  test.innerHTML += result + "<br>";
  return new Promise(function(resolve, reject) {
    setTimeout(() => resolve(result * 2, 3000));
  });
}).then(result => {
  test.innerHTML += result;
});
var test=document.getElementById(“test”);
新承诺(功能(解决、拒绝){
setTimeout(()=>resolve(1),1000);
})。然后(结果=>{
test.innerHTML+=结果+“
”; 返回新承诺(功能(解决、拒绝){ setTimeout(()=>resolve(结果*22000)); }); })。然后(结果=>{ test.innerHTML+=结果+“
”; 返回新承诺(功能(解决、拒绝){ setTimeout(()=>解析(结果*23000)); }); })。然后(结果=>{ test.innerHTML+=结果; });
正确传递setTimeout的第二个参数

新承诺(功能(解析、拒绝){
setTimeout(()=>resolve(1),1000);
})。然后(结果=>{
console.log(结果)
返回新承诺(功能(解决、拒绝){
setTimeout(()=>解析(结果*2),2000);
});
})。然后(结果=>{
console.log(结果)
返回新承诺(功能(解决、拒绝){
setTimeout(()=>解析(结果*2),3000);
});
})。然后(结果=>{
console.log(结果)

});为setTimeout正确传递第二个参数

新承诺(功能(解析、拒绝){
setTimeout(()=>resolve(1),1000);
})。然后(结果=>{
console.log(结果)
返回新承诺(功能(解决、拒绝){
setTimeout(()=>解析(结果*2),2000);
});
})。然后(结果=>{
console.log(结果)
返回新承诺(功能(解决、拒绝){
setTimeout(()=>解析(结果*2),3000);
});
})。然后(结果=>{
console.log(结果)

});这是一个输入错误,您没有将第二个参数传递给其他2个SetTimeout,而是传递了两个参数来解析回调。这是一个输入错误,您没有将第二个参数传递给其他2个SetTimeout,而是传递了两个参数来解析回调