小编var*_*max的帖子

promises如何保证在异步操作之后执行'resolve'函数

我有这个代码:

var myFirstPromise2 = new Promise((resolve, reject) => {
    //setTimeout models an operation that takes a long time
    setTimeout(function(){console.log('finishTimeout')},60000);
    resolve('success');
});

myFirstPromise2.then((successMessage) => {
    console.log('yay '+successMessage);
});
Run Code Online (Sandbox Code Playgroud)

输出是:

yay success 
finishTimeout
Run Code Online (Sandbox Code Playgroud)

我希望resolve()在冗长的操作完成后执行,以便输出反转.

我也对一般的承诺感到困惑.上面的代码与简单地执行此操作没有区别:

setTimeout(function(){console.log('finishTimeout')},60000);
console.log('yay success');
Run Code Online (Sandbox Code Playgroud)

编辑:放入resolve()内部之间的区别是什么setTimeout:

setTimeout(function() {
    console.log('finishTimeout')
    console.log("yay success")
},60000)
Run Code Online (Sandbox Code Playgroud)

javascript promise

1
推荐指数
1
解决办法
65
查看次数

标签 统计

javascript ×1

promise ×1