gpt4 book ai didi

javascript - 两个匿名函数之间的简单 "then" promise

转载 作者:行者123 更新时间:2023-11-28 03:20:36 27 4
gpt4 key购买 nike

我有两个想要连续执行的匿名函数。我怎样才能做到 promise 呢?

在这个简化的示例中,需要连续执行的两个函数是“saveAs”匿名函数内的“renameReport”和“saveReport”。

“renameReport”和“saveReport”都使用 jQuery 进行 AJAX 调用。仅仅在下一行执行 renameReport 和 saveReport 是不行的。

var renameReport = function () {
...
}

var saveReport= function () {
...
}

var saveAs = function () {
renameReport().then(saveReport()); //not working
};

这会导致错误:“TypeError:renameReport(...) 未定义”

最佳答案

要使用 promise ,您必须有 promise 并返回它们,以便可以将其链接起来。因此,如果您确实有一个带有 promise 的函数,那么您可能不会返回该 promise 。

您还调用了该函数,但没有在 then 中引用它。当您添加 () 时,它会执行该函数并将其返回的内容分配给 then。因此删除 () 这样它就不会被执行。

您需要的基本程序流程如下所示。

var renameReport = function () {
console.log('renameReport')
return new Promise( function (resolve, reject) {
window.setTimeout(function () {
console.log('renameReport timeout')
resolve('hello')
}, 2000)
})
}

var saveReport = function (data) {
console.log('saveReport', data)
}

var saveAs = function () {
renameReport().then(saveReport);
}

saveAs()

关于javascript - 两个匿名函数之间的简单 "then" promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59197417/

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