以下javascript代码段在.done语句中出错。错误是“未捕获的TypeError:undefined不是函数” 既然我们可以使用完成承诺任何想法为什么会出现这个错误?
var promise = new Promise(function(resolve,reject)
{
if(true)
{
console.log("1");
}
else
console.log("2");
});
promise.then( function(data1) {
if(true)
{
console.log("3");
}
else
console.log("4");
})
.then( function(data2) {
if(true)
{
console.log("5");
}
else
console.log("6");
})
.done(
function(response) {
console.log("done")
});
.fail(
function() {
console.log("fail");
});
答案 0 :(得分:1)
Promise API中没有此类方法done
和fail
,对象级别只有then
和catch
:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise#Methods
Promise.prototype.then(onFulfilled,onRejected)
将履行和拒绝处理程序附加到promise,并返回一个新的promise,解析为被调用者的返回值。
<强> Promise.prototype.catch(onRejected)强>
将拒绝处理程序回调附加到promise,并返回一个新的promise,解析为回调的返回值(如果是 如果承诺是相反的,则称为或其原始履行价值 满足。