提问者:小点点

等待一个函数,直到它完成它的settimeout


我想知道是否有一种方法可以让我等待一个函数,它具有类似于这样的结构:

function foo(){
    //do stuff
    settimeout(()=>{
     
       //do more stuff

    },timeout)

    // do even more stuff

}

我尝试使用utils.promisify,但它倾向于不等setTimeout完成后再继续执行“then”回调函数。

下面是一个例子:

const promise=promisify(foo);
promise().then(alert("ok"));

警报似乎在settimeout执行完毕之前触发。


共1个答案

匿名用户

我认为您应该尝试使用Promise构造函数并解析或拒绝

let  a = new Promise( function(resolve, reject) { setTimeout(
    function() {
      resolve("whatever");
    }, timeout});

a.then(alert("ok"));