将 promise 转换为同步函数
Convert promise to synchronous function
如果我有一个像下面这样的简单函数 addTwo
我可以使用 bluebird 的 Promise.method(addTwo)
来实现它,即使它不执行任何异步操作。有没有办法做相反的事情?
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
从 promise 转换为同步函数吗?我对 async / await 了如指掌,我并不是在寻找答案。
是的,您可以使用 Promise.setScheduler
明确违反 Promises/a+ 规范并强制 bluebird 同步 运行 then
回调。
请不要这样做,因为它只适用于无论如何都是同步的函数(不应该 return promises 开始)并且它会产生一个地狱般的竞争条件。
如果我有一个像下面这样的简单函数 addTwo
我可以使用 bluebird 的 Promise.method(addTwo)
来实现它,即使它不执行任何异步操作。有没有办法做相反的事情?
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
从 promise 转换为同步函数吗?我对 async / await 了如指掌,我并不是在寻找答案。
是的,您可以使用 Promise.setScheduler
明确违反 Promises/a+ 规范并强制 bluebird 同步 运行 then
回调。
请不要这样做,因为它只适用于无论如何都是同步的函数(不应该 return promises 开始)并且它会产生一个地狱般的竞争条件。