我有一个问题,如何并行解决一组诺言,让这些诺言在响应中做一些不同的事情。
我有可以正常处理我的诺言数组的代码,但是来自myFunction
的响应是相同的。这就是我期望数组中的最后一项。
传递给template
的参数createTemplate
在每个实例中都是正确且唯一的。
const newman = require('newman')
const fse = require('fs-extra')
const { promisify } = require('util')
const path = require('path')
const np = promisify(newman.run)
const templateCollection = require('./template-collection.json')
const templateList = [
"template1.html",
"template2.html",
"template3.html"
]
const email = 'user@example.com'
const basePath = path.join(process.cwd(), 'assets')
const templatePath = path.join(process.cwd(), 'templates', `${email}`)
let collection = {}
myApp()
async function myApp() {
try {
await fse.ensureDir(`${templatePath}`)
await fse.ensureDir(`${basePath}`)
const promises = templateList.map(createTemplate)
await Promise.all(promises)
process.exit()
} catch (e) {
console.log('ERROR: ', e)
}
}
const createTemplate = template => {
collection[template] = Object.assign({}, templateCollection)
collection[template].item[0].request.body = `{email: ${email}, templateFileName: ${template}}`
return np({
collection: collection[template],
environment: {},
globals: {}
})
.then(res => {
fse.writeFile(`${templatePath}/${template}`, res.run.executions[0].response.json().content, 'base64')
})
}