gpt4 book ai didi

javascript - 如何将es6 Promise中的变量传递然后回调到外部

转载 作者:行者123 更新时间:2023-12-03 04:02:19 25 4
gpt4 key购买 nike

代码在这里:

function square() {
let record = 10;
new Promise(function(resolve, reject) {
// A mock async action using setTimeout
setTimeout(function() { resolve(record); }, 3000);
})
.then(function(data) {
console.log('first then: ', data);
return data * data;
});
return record;
}

function submit() {
// ...
const result = square(); // => still 10
// finalHandler(result);
}
submit();

我使用 setTimeout 来模拟我必须交付的一个异步进程。当我调用submit时,传递给finalHandler的result仍然是初始值10。但是我更新后的结果是100。我该如何修改squaresubmit 函数?

最佳答案

您需要通过返回 promise 来使 square 异步:

function square() {
let record = 10;
return new Promise(function(resolve, reject) {
// A mock async action using setTimeout
setTimeout(function() { resolve(record); }, 3000);
})
.then(function(data) {
console.log('first then: ', data);
return data * data;
});
}

function submit() {
// ...
square()
.then(result => finalHandler(result);
}
submit();

关于javascript - 如何将es6 Promise中的变量传递然后回调到外部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44677213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com