{
const orderOfReturnedValues = []
function functionalExplicitLock() {
return [1,2,3,4,5,6,7,8,9].reduce((explicitLock, i) => {
return explicitLock.then(slowOp).then(_ => orderOfReturnedValues.push(i))
}, Promise.resolve())
}
await functionalExplicitLock()
return orderOfReturnedValues
}