【发布时间】:2020-09-17 08:12:26
【问题描述】:
下面是我尝试运行的代码。它是示例代码。我面临的问题是,不知何故它不能按我期望的顺序工作。由于它,test1和test2同时进入脚本并搞砸了。
let testmap = testDataArray.map((testdataContent) => {
return new Promise((resolve, reject) => {
console.log(testdataContent)
logger.info(testdataContent + "to be stored");
return service1.upload(testdataContent).then((testdataUpload) => {
logger.info(testdataContent + " is stored ");
logger.info(testdataContent + " to be run on script");
return service2.runScript(testdataContent).then((scriptresponse) => {
logger.info(testDataName + " successfully run on script");
resolve(scriptresponse);
}).catch((err) => {
reject(err);
})
}).catch((err) => {
reject(err);
})
})
})
Promise.all(testmap).then((res) => {
console.log("Done all");
}).catch((err) => {
console.log(err);
})
记录器是这样的:
"Test1 to be Stored"
"Test2 to be stored"
"Test1 is stored"
"Test1 to be run on script"
"Test1 successfully run on script"
"Test 2 successfully run on script"
"Done all"
预期订单:
"Test1 to be Stored"
"Test1 is stored"
"Test1 to be run on script"
"Test1 successfully run on script"
"Test2 to be Stored"
"Test2 is stored"
"Test2 to be run on script"
"Test2 successfully run on script"
"Done all"
【问题讨论】:
-
在 for(let i=0; i