JavaScript 中的 promise 干预其余代码
promises in javascript meddle with the rest of the code
我有以下js文件,我正在尝试创建一个表,其中包含今天和昨天的csv数据。我之前在竞争条件方面遇到问题,所以现在尝试使用 promise,最终得到以下代码,但它 1) 似乎不起作用 2) 不允许所有其他代码工作,例如我的日历启动$(document).ready(function() { $('#datetimepicker1').datetimepicker(); });
.js文件:
$(document).ready(function() { $('#datetimepicker1').datetimepicker(); });
var p = function(url){
return new Promise(function(resolve, reject){
$.ajax({
url: url,
crossDomain:true,
dataType:"jsonp",
'success': function(response){
$(".domain").append(response.results.collection1[0].date);
var collection = response.results.collection2;
for (var i = 1; i < collection.length; i++){
$(".table-group1").append('<tr> <td>' + collection[i].domain.href + '</td>'+'<td>' + collection[i].dns + '</td>'+'<td> ' + collection[i].mail + '</td>'+'<td> ' + collection[i].web + '</td> </tr>');
}
resolve(collection);
},
'error': function(e){
reject(e);
}
})
})
}
p(url_today).
then(function (collection_today) {
return p(url_yesterday).then(function(collection_yesterday){
$(".table-group1").append('<tr><td>' + collection_today.domain.href + '</td>'+'<td>' + collection_today.dns + '</td>'
+'<td> ' + collection_today.mail + '</td>'+'<td> ' + collection_today.web + '</td> <td>' + collection_yesterday.domain + '</td> <td>'
+ collection_yesterday.dns + '</td><td>'+ collection_yesterday.mail + '</td> <td>'+ collection_yesterday.web + '</td> </tr>');
})
})
.catch(function(e){
console.error(e);
});
该 html 文件:
<!-- Calendar -->
<div class="container">
<div class="row">
<div class='col-sm-6'>
<div class="form-group">
<div class='input-group date' id='datetimepicker1'>
<input type='text' class="form-control" />
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
</div>
</div>
</div>
<!-- Table -->
<div class= "container_1">
<div class="panel panel-info">
<table class="table" border="1">
<th class="panel-heading"> </th>
<tr class="domain"> </tr>
<tr class="table-group1">
</tr>
</table>
这并不能解决承诺等的逻辑或最佳实践使用的根本问题。它解决了包含阻止其他代码工作的代码的问题
您遇到问题的原因是代码中有语法错误......例如,第 15 行需要,
- 您的最后then
代码不喜欢 js lint -
如果将其更改为以下内容
$(".table-group1").append('<tr><td>' + collection_today.domain.href + '</td>' + '<td>' + collection_today.dns + '</td>' +
'<td> ' + collection_today.mail + '</td>' + '<td> ' + collection_today.web + '</td> <td>' + collection_yesterday.domain + '</td> <td>' +
collection_yesterday.dns + '</td><td>' + collection_yesterday.mail + '</td> <td>' + collection_yesterday.web + '</td> </tr>');
请参阅以 +
结尾的行,然后继续下一行,而不是以 +
开头的行
另一个问题是代码将立即运行 - 也许在您的 DOM 准备就绪之前
看起来所有代码都应该包装在$(document).ready
而不仅仅是第一行
相关文章:
- 删除方法中的冗余代码
- 从Java脚本调用C#代码隐藏代码
- 简化冗余jquery's代码
- Meteor模板-继承或外包事件以避免代码冗余
- HTML-减少HTML代码冗余
- 我怎样才能减少这段代码 javascript 代码,这样它就不会那么重复了
- HTML 看不到 Javascript 代码;PHP 代码中的执行中断而没有错误
- 适用于 Netbeans IDE 的 JQuery-Mobile 代码辅助(代码(自动)完成、代码提示)
- Amazon Cloud (AWS) 中的代码-测试-代码周期
- 如何重构用于初始化和更新的冗余代码
- Visual Studio代码分析代码行对HTML、CSS和Javascript有什么作用
- 如何在Javascript中重写函数时减少冗余代码
- 有人可以纠正我的javascript代码?(免费代码营)
- Javascript确认没有代码在代码后面
- 如何获得客户端JavaScript代码的代码覆盖率
- Jquery内容滑块,如何复制无冗余代码
- 通过算法将冗余代码优化为循环
- 动态创建JavaScript代码从代码背后不工作的JavaScript
- 自定义java脚本语言,从代码到代码
- 我编写了此代码示例代码以隐藏 2 行,但它不起作用