gpt4 book ai didi

javascript - 编译 CoffeeScript 时添加不需要的 js 代码

转载 作者:行者123 更新时间:2023-12-02 17:02:53 26 4
gpt4 key购买 nike

我是 CoffeeScript 的新手,我有一个 CoffeeScript 代码

getProviderListDisplayValues:(domainId) ->      
displayValues = []
$.ajax
contentType: 'application/json',
url: "/Services/ListProviders?domainid=#{domainId}",
success: (data) ->
for oneResponse in data
displayValues.push oneResponse.name
displayValues

编译为

CounselorHome.prototype.getProviderListValues = function(domainId) {
var values;
values = [];
$.ajax({
contentType: 'application/json',
url: "/Services/ListProviders?domainid=" + domainId,
success: function(data) {
var oneResponse, _i, _len, _results;
_results = [];
for (_i = 0, _len = data.length; _i < _len; _i++) {
oneResponse = data[_i];
_results.push(values.push(oneResponse.id));
}
return _results;
}
});
return values;
};

我只想将值推送到 values[]displayValues[] 但为什么要创建 _results[] 数组?它会影响浏览器的效率吗?有没有什么方法可以去掉这些不必要的代码呢?也许可以,通过编辑我的 CoffeeScript 。

编辑:工作条件

但是当我将警报代码设置为

 $.ajax 
contentType: 'application/json',
url: "/Services/ListProviders?domainid=#{domainId}",
success: (data) ->
for oneResponse in data
displayValues.push oneResponse.name
alert displayValues
displayValues

此代码有效,我可以检索所需的数据。

最佳答案

除此之外your code wouldn't work anyway_results是由于coffescripts隐式函数返回值而生成的 - 和 loops are only expressions以及生成数组。文档指出:

Sometimes functions end with loops that are intended to run only for their side-effects. Be careful that you're not accidentally returning the results of the comprehension in these cases, by adding a meaningful return value — like true — or null, to the bottom of your function.

因此可以通过编写来创建您期望的 javascript


success: (data) ->
for oneResponse in data
displayValues.push oneResponse.name
return

(“尾随 returnreturn undefined 现已优化。” - 自版本 1.0.1 起);
另请参阅Is there any way to not return something using CoffeeScript?

但是,您真正想要的是:

getProviderListDisplayValues:(domainId) ->
$.ajax
contentType: 'application/json',
url: "/Services/ListProviders?domainid=#{domainId}"
.then (data) ->
for oneResponse in data
oneResponse.name



getProviderListDisplayValues(…).then (displayValues) ->

关于javascript - 编译 CoffeeScript 时添加不需要的 js 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25548181/

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