我正在创建一个具有2个参数的函数:
此函数将在x ms的时间段后调用回调函数并返回promise。
我的代码如下。它只会在1秒后打印“再见”
function doAfter(func, time) {
var promise = new Promise(function(resolve, reject) {
setTimeout(function(data) {
resolve(data);
}, time);
});
return promise;
}
function sayHello() {
console.log('Hello');
}
function sayGoodbye() {
console.log('Goodbye');
}
doAfter(sayHello, 1000).then(sayGoodbye);
预期行为:等待1秒钟,然后打印“你好再见”
答案 0 :(得分:1)
您需要解决func()
。 data
在setTimeout
中未定义
function doAfter(func, time) {
var promise = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve(func());
}, time);
});
return promise;
}
function sayHello() {
console.log('Hello');
}
function sayGoodbye() {
console.log('Goodbye');
}
doAfter(sayHello, 3000).then(sayGoodbye);