0
我有一個類:無法參數傳遞給類方法,
'use strict';
class aClass {
a() {
return new Promise((resolve, reject) => {
if (1 != 1) {
reject(new Error('error'));
} else {
resolve('a');
}
});
}
b(b) {
return new Promise((resolve, reject) => {
if (1 != 1) {
reject(new Error('error'));
} else {
resolve('b');
}
});
}
c(c) {
console.log(c);
}
do() {
this.a()
.then((a) => {
this.b(a);
})
.then((b) => {
console.log(b);
this.c(b);
}).catch((error) => {
console.log('err', error);
});
}
}
module.exports = aClass;
當我創建的類的對象,並調用do()
方法:
let anObject = new aClass();
anObject.do();
「undefined」在控制檯中記錄了兩次。這意味着,在b()
方法的參數都沒有傳遞給一個承諾的決心:resolve('b');
同時,如果我不使用類的方法,但添加代碼直接進入回調:
do() {
this.a()
.then((a) => {
return new Promise((resolve, reject) => {
if (1 != 1) {
reject(new Error('error'));
} else {
resolve('b');
}
});
})
.then((b) => {
console.log(b);
this.c(b);
}).catch((error) => {
console.log('err', error);
});
}
一切正常, 「b」在控制檯中記錄了兩次。
我使用nodejs
作爲此示例,babeljs
作爲轉換器。 當我使用類方法時,爲什麼不傳遞參數?是否有任何範圍限制,或者它是一個轉譯問題?
如果你'返回this.b(A);'這一切都很好,或刪除{}'左右this.b(一)'它按預期工作再次...學習箭頭函數語法知道爲什麼這是 –
謝謝,我忘了返回一個可靠的對象。 –