promises和AJAX调用都是异步操作.可以使用两者进行GET/POST请求.<< 编辑:那是一个错误的陈述
那么它们之间的区别是什么?何时最好使用一个而不是另一个?
还有一件事:
最近我遇到了一个承诺,它的身体有一个AJAX.为什么在异步操作中放置异步操作?这就像把面包放在面包三明治里.
function threadsGet() {
return new Promise((resolve, reject) => {
$.getJSON('api/threads')
.done(resolve)
.fail(reject);
})
}
Run Code Online (Sandbox Code Playgroud)
这里使用jQuery.AJAX调用具有Promise行为和属性.我没有早点得到,但这是我的想法:我们可以在承诺中做点什么.然后使用AJAX调用并在done函数中传递已解析的Promise逻辑.特别是在这个例子中没有.
现在我看到我混淆了两个.它们有两个不同的东西.仅仅因为它们是异步的,并不意味着它们是可以互换的.
==============
编辑2:我发现有些材料很有用:
我正在尝试在 vue.js 中创建一个随机播放函数。因此,为此我创建了一个计算属性,然后调用一个方法。但它不起作用。我创建了另外两个函数“添加”和“删除”,除了“随机播放”之外,这两个函数工作正常。
抛出错误:Uncaught TypeError: this.moveIndex is not a function
var app = new Vue({
el: '#root',
data: {
tasks: [1,8,9],
nextNum: 10
},
computed: {
moveIndex: function(array){
var currentIndex = array.length, randomIndex, tempVal;
for(var i = currentIndex - 1; i > 0; i--){
randomIndex = Math.floor(Math.random() * currentIndex);
tempVal = array[i];
array[i] = array[randomIndex];
array[randomIndex] = tempVal;
}
return array;
}
},
methods: {
randIndex: function(){
return Math.floor(Math.random() * this.tasks.length);
},
add: function(){
this.tasks.splice(this.randIndex(),0,this.nextNum++)
},
remove: function(){
this.tasks.splice(this.randIndex(),1) …Run Code Online (Sandbox Code Playgroud)