Преобразование обещаний в синхронную функцию

Если у меня есть простая функция, подобная этой, ниже addTwo, я могу использовать bluebird Promise.method(addTwo), чтобы сделать ее обещающей, даже если она не выполняет никаких операций async. Есть ли способ сделать противоположное этому?

function addTwo(num){
  return num + 2
}

var newValue = addTwo(2) // => 4

addTwoPromise = Promise.method(addTwo)

addTwoPromise(2).then(function(newValue){
  console.log(newValue) // == 4
})

Есть ли способ конвертировать addTwoPromise из обещания в синхронную функцию снова? Я знаю все об async/await, и я не ищу это как ответ.

Ответ 1

Да, вы можете использовать Promise.setScheduler, чтобы явно нарушить спецификацию Promises/a + и заставить синюю птицу запускать обратные вызовы then синхронно.

Пожалуйста, не делайте этого, потому что он будет работать только для синхронных функций (для чего не следует возвращать promises), и это создаст один адский статус гонки.