首页 > 解决方案 > 如何在同步 java 脚本中打印异步操作的响应?

问题描述

你能告诉我如何在javascript中同步打印异步操作的响应吗​​?

我有3异步调用的承诺,但我知道要同步获取数据,Promise.all但是当任何一个承诺失败时它都会失败。我需要它显示那些已解决的承诺。其次是asyn await异步block请求。

所以它有任何其他方法可以做意味着我们异步触发多个请求并同步获取数据打印所有已解决的承诺。

我试过这样

// Import stylesheets
import './style.css';

// Write Javascript code!
let promises =[]
const appDiv = document.getElementById('app');
appDiv.innerHTML = `<h1>JS Starter</h1>`;
var promise1 = new Promise(function(resolve, reject) {
  setTimeout(resolve, 1000, 'foo');
});

var promise2 = new Promise(function(resolve, reject) {
  setTimeout(resolve, 2000, '222foo');
});

var promise3 = new Promise(function(resolve, reject) {
  setTimeout(reject, 2000, 'reject');
});

// Promise.all([promise1,promise2]).then((result)=>{
//  appDiv.innerHTML ='a::' +result[0] + 'b::'+result[1]
// }).catch(reason => { 
//   console.log(reason)
//   appDiv.innerHTML =reason
// });
promises.push(promise1);
promises.push(promise2);
promises.push(promise3);
Promise.all(promises.map((promise, i) =>
    promise.catch(err => {
        throw err;
    })
)).then(results => {
    console.log("everything worked fine, I got ", results);
}, err => {
    console.error("promise No  failed with ", err);
});

https://stackblitz.com/edit/js-l1cfac

任何更新

标签: javascript

解决方案


推荐阅读