Tho*_*ggi 1 javascript promise bluebird
如果我有一个像下面这样的简单函数,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
})
Run Code Online (Sandbox Code Playgroud)
有没有办法再次addTwoPromise从承诺转换为同步功能?我知道关于异步/等待的所有内容,我不是那样寻找答案.
是的,您可以使用Promise.setScheduler显式违反Promises/a +规范并强制bluebird then同步运行回调.
请不要,因为它只适用于同步的功能(不应该返回承诺),它会创造一个竞争条件的地狱.