我必须在函数内部执行Fetch promise返回,以便在其他人处理此数据之前转换某些数据。 所以我创建了这个代码(简化只是为了表明这个想法):
function test() {
return new Promise(function (resolve, reject) {
// Fetch('www.google.com')
setTimeout(resolve, 1000);
}).then(function () {
// convert data, etc
console.log(1);
});
}
// after conversion, handle it to someone else
test().then(console.log(2));
运行它,我认为控制台会显示:1 2但它一直显示2 1.还有其他方法可以做到这一点吗?
答案 0 :(得分:1)
就像使用console.log(1)
一样,您需要将第二个调用包装在函数中,然后再将其作为回调传递给then
。
test().then(function() {
console.log(2);
});
然后它会按预期显示1
2
。