gpt4 book ai didi

javascript - (中间值).then 不是函数

转载 作者:行者123 更新时间:2023-11-30 19:35:26 26 4
gpt4 key购买 nike

我是 Javascript 的新手。由于一些遗留系统,目前我正在将一些 ES6 代码转换回 ES5 代码。我转换了以下代码:

$row.find('.gridCellDetailAction')
.each((i, elem) => $translate('Grid.Show' + $(elem).attr('data-title') + 's')
.then(trans => $(elem).attr('title', trans)));

为此

   $row.find('.gridCellDetailAction')
.each(function (i, elem) {
$translate('Grid.Show' + $(elem).attr('data-title') + 's')
}.then(function (trans) { $(elem).attr('title', trans) }));

现在我收到以下错误:

(intermediate value).then is not a function

现在我知道我对 then 做错了什么。但是我怎样才能得到相同的结果呢?

最佳答案

通过一些格式设置,您可以轻松看出差异。一次是在 $translate 的结果上调用 then,另一次是在函数定义上调用 then

$row.find('.gridCellDetailAction')
.each(
(i, elem) => {
$translate(
'Grid.Show' + $(elem).attr('data-title') + 's'
)
.then(
trans => $(elem).attr('title', trans)
)
}
);
$row.find('.gridCellDetailAction')
.each(
function (i, elem) {
$translate('Grid.Show' + $(elem).attr('data-title') + 's')
}// <-- The error is here
.then(
function (trans) {
$(elem).attr('title', trans)
}
)
);

这是正确的:

$row.find('.gridCellDetailAction')
.each(
function (i, elem) {
$translate('Grid.Show' + $(elem).attr('data-title') + 's')
.then( //Now then is called on the result of $translate
function (trans) {
$(elem).attr('title', trans)
}
)
}
);

关于javascript - (中间值).then 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55993592/

26 4 0
文章推荐: c# - 防止静态属性在异步函数初始化之前被访问
文章推荐: c - 使用递归进行二分搜索而无需数组中的元素数量?
文章推荐: C 根据用户输入打印出缩写词
文章推荐: c# - 将对象 (List) 转换为 List