最佳答案
这不是现实世界的问题,我只是试图理解承诺是如何产生的。
我需要了解如何为一个不返回任何值的函数(如 setTimeout)做出承诺。
假设我有:
function async(callback){
setTimeout(function(){
callback();
}, 5000);
}
async(function(){
console.log('async called back');
});
我如何创建一个承诺,async
可以返回后,setTimeout
是准备 callback()
?
我以为包装起来会带我去某个地方:
function setTimeoutReturnPromise(){
function promise(){}
promise.prototype.then = function() {
console.log('timed out');
};
setTimeout(function(){
return ???
},2000);
return promise;
}
但我不能想得太远。