gpt4 book ai didi

javascript - 从函数返回变量和 promise

转载 作者:行者123 更新时间:2023-11-29 18:40:37 24 4
gpt4 key购买 nike

考虑以下使用回调编写的函数。它返回一个 token 并异步执行一个方法。

var token = 1;
function requestSupport(callback) {
setTimeout(() => {
console.log(token + ":How may I help you?");
callback(); //when executive is available
}, 5000);
return ++token; //instantly give the token number
}

回调的简单之处在于该函数能够(立即)返回 token 号,还可以异步执行代码并在有可用帮助时通知。当尝试使用 Promises 重写时,这个函数应该是什么样子的?问题:如果一个函数返回一个 promise ,用户将无法获得 token 号,因为函数可以返回一件事。

最佳答案

您想要同时返回 token 和 Promise - 您可以使用您想要的任何数据结构来执行此操作,也许是一个对象:

var token = 1;
function requestSupportProm() {
const prom = new Promise((resolve) => {
setTimeout(() => {
console.log(token + ":How may I help you?");
resolve(); //when executive is available
}, 2000);
});
return {
prom,
token: ++token
};
}

(() => {
// later;
const { prom, token } = requestSupportProm();
console.log('Got token:', token);
prom.then(() => {
console.log('Promise resolved');
});
})();

也可以使用数组,例如return [prom,++token],但具有命名属性的对象可能更容易一目了然。

关于javascript - 从函数返回变量和 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57344131/

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